Я пытаюсь загрузить удаленный файл на свое устройство. Я использую PhoneGap Build. Вот мой код.PhoneGap File Download Issue
Я пробовал каждый кусок кода, который я нашел. Когда я нажимаю кнопку загрузки, ничего не происходит. При отладке ошибок не возникает.
Где я могу с этим связаться?
<script type="text/javascript">
window.appRootDirName = "my_app";
function onLoad(){
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
console.log("device is ready");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
console.log("filesystem got");
window.fileSystem = fileSystem;
fileSystem.root.getDirectory(window.appRootDirName, {
create : true,
exclusive : false
}, dirReady, fail);
}
function dirReady(entry) {
window.appRootDir = entry;
console.log('application dir is ready');
}
function fail() {
console.log('failed to get filesystem');
}
function downloadFile(url,fileName) {
var fileTransfer = new FileTransfer();
var filePath = window.appRootDir.fullPath + "/" + fileName + ".txt";
fileTransfer.download(url, filePath, function(entry) {
alert("download complete: " + entry.fullPath);
}, function(error) {
console.log(error);
});
}
$(document).ready(function(){
.... some other code
//on click download file
$(document).on('click touchstart', '.download', function(e){
e && e.preventDefault();
var url = $(this).data('url');
var title = $(this).data('title');
downloadFile(url,title);
});
});
</script>
config.xml Также
<gap:plugin name="com.coconutcenter.file-transfer" version="0.4.6" />
<feature name="http://api.phonegap.com/1.0/file" />
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<feature name="Storage">
<param value="org.apache.cordova.Storage" name="android-package"/>
</feature>
Код ошибки по методу .download:
{"code":1,"source":"http://myurl.com/file.txt","target":"//my_app/file.txt","http_status":null,"body":null}
Наконец я нашел решение. Как указано here, я использовал .toUrl()
insetad fullPath
. Таким образом, моя функция downloadFile будет;
function downloadFile(url,fileName) {
var fileTransfer = new FileTransfer();
var filePath = window.appRootDir.toUrl() + "/" + fileName + ".txt"; //here
fileTransfer.download(url, filePath, function(entry) {
alert("download complete: " + entry.fullPath);
}, function(error) {
console.log(error);
});
}
Показать выход функции ошибки –
«При отладке ошибок не появляется». – bencagri
В вашей функции downloadFile вывести функцию функции callbak, как this console.log («ошибка» + ошибка). –