[英]Using FileTransfer API for Phonegap on Android download fails
[英]Where to save a PDF on Android device using FileTransfer plugin Phonegap
我試圖在phonegap應用程序中下載PDF,然后立即將其打開,但出現“找不到文件”錯誤。 好像下載了。 這是我的代碼:
// Download
var url = "https://example/example.pdf";
var fileTransfer = new FileTransfer();
var uri = encodeURI(url);
var fileURL = 'cdvfile://localhost/persistent/com.mycompany.myApp/';
var fileName = 'example.pdf';
fileTransfer.download(
uri,
fileURL,
function (entry) {
alert("download complete: " + entry.fullPath);
// Open
cordova.plugins.fileOpener2.open(
fileURL + fileName,
'application/pdf',
{
error: function (errorObj) {
alert('Error status: ' + errorObj.status + ' - Error message: ' + errorObj.message + ' ' + errorObj.fileURL);
},
success: function () {
alert('file opened successfully');
}
}
);
},
function (error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
}
);
alert('Downloading...');
我也想知道保存這樣的文件的最佳位置在哪里,在應用程序關閉后應該可以使用該文件?
fileTransfer.download的第二個參數是設備上要下載pdf文件的位置。 您正在設置var fileURL ='cdvfile://localhost/persistent/com.mycompany.myApp/'; 我相信不存在。 您可以使用文件系統插件來首先獲取設備上的文件位置,然后將其保存在設備上。 您可以使用下面的代碼快照。
var url = "https://example/example.pdf";
var uri = encodeURI(url);
//var fileURL = 'cdvfile://localhost/persistent/com.mycompany.myApp/';
// var fileName = 'example.pdf';
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
function gotFS(fileSystem) {
fileSystem.root.getDirectory("Dir_NAME", {
create: true,
exclusive: false
}, gotDirectory, fail);
}
function gotDirectory(entry) {
entry.getFile('yourFileNAme', {
create: true,
exclusive: false
}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
filePath = fileEntry.fullPath;
var fileTransfer = new FileTransfer();
fileTransfer.download(
'uri', filePath, function(entry) {
console.log("success");
//perform you launch task
}, function(error) {
console.log("error");
}, true, {});
}
希望對您有幫助。
即使我是Android新手,但我認為URI中存在問題
要在android中打開Uri,它應具有file:/// storage / ....之類的結構(應該有3個反斜杠)
您可以在此處獲得更多詳細信息
保存pdf的最佳位置可以是SD卡或內部存儲設備。 然后,即使應用程序關閉,該pdf文件仍可在您的設備中使用。
如果您希望擁有相同的pdf文件,可以在不同的設備/甚至是模擬器中測試應用程序時在不同的設備中使用,則可以將其保存在android項目的assert文件夾中。
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.