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
這可能根本不是真的?我搜索整個系統的上傳文件,但我不認爲它的下載。我想我總是得到一個錯誤的路徑...
任何想法? 在此先感謝!
本來不錯的downvoter告訴我什麼是錯誤的這個問題... –