我想将PDF下载到Android设备的本地存储中,然后在外部读卡器中打开它,因为Android无法在浏览器中显示PDF。对于iOS,我只是使用InAppBrowser插件,它工作得很好btw。我使用cordova 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 :(得分:0)
好吧,我对这里的支持感到非常失望。没有任何答案,没有任何暗示,没有任何理由也没有任何解释。
我自己想出了这个问题。我使用固定路径而不是localFileSystem废话。
谢谢你!