簡體   English   中英

使用FileTransfer插件Phonegap在Android設備上保存PDF的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM