2016-10-04 62 views
-1

Im我的頭撞在我的桌子上,因爲我似乎找不到任何可行的答案。科爾多瓦6.3.1下載PDF並用FileSystem,FileTransfer和FileOpener2打開

我想下載PDF到本地存儲的Android設備,然後在外部閱讀器中打開它,因爲Android無法在瀏覽器中顯示PDF。對於iOS,我只需使用InAppBrowser插件,它可以很好地工作。我使用科爾多瓦6.3.1。

所以,這是我的代碼:

if (cordova.platformId === "android") { 
      var remoteFile = url; 
      var localFileName = "tmp.pdf"; 

      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { 

       //var fileSystemRoot = cordova.file.dataDirectory; Does not work... 
       var fileSystemRoot = fileSystem.root.toURL() 

       console.log(cordova.file.dataDirectory); 

        var ft = new FileTransfer(); 
        ft.download(remoteFile, 
        fileSystemRoot + "tmp.pdf", function(entry) { 
         cordova.plugins.fileOpener2.open(
          entry.toURL(), 
          'application/pdf', 
          { 
           error : function(e) { 
            console.log('Error status: ' + e.status + ' - Error message: ' + e.message + ' - URL: ' + messageObj.url); 
          }, 
           success : function() { 
            console.log('file opened successfully'); 
            console.log(fileSystemRoot); 
            console.log(entry.toURL()); 
           } 
          } 
         ); 
        }, function(error) { 
         console.log("Error in downloading"); 
         console.log(error); 
        }); 
      }, function(error) { 
       console.log("Error in requesting filesystem"); 
       console.log(error); 
      }); 
} 

我曾嘗試噸不同的東西。 fileSystem.root.fullpath,fileSystem.root.toURL(),fileSystem.root.nativeURL,但我總是會看到與設備不匹配的路徑。我總是得到下載成功的消息,Adobe Reader會彈出,但表示該文件不可讀。對我來說並不奇怪,因爲它給我的路徑是這樣的:

file:///data/data/ch.novalogix.novalib/files/files 

這可能根本不是真的?我搜索整個系統的上傳文件,但我不認爲它的下載。我想我總是得到一個錯誤的路徑...

任何想法? 在此先感謝!

+0

本來不錯的downvoter告訴我什麼是錯誤的這個問題... –

回答

0

好吧,我非常失望得到我的支持。沒有答案,沒有暗示什麼,1沒有任何理由,也沒有解釋。

我想出了自己的問題。我用固定路徑而不是localFileSystem垃圾。

謝謝!

+1

雖然我確實沒有看到立即的理由downvote你的問題,我會完全理解人downvoting這個答案。 – mkl