使用Cordova FileOpener2和许多其他插件,如Cordova File,Cordova FileTransfer ..我无法在Android中找到我的本地PDF位置。
此文件位于www/offline-files/
目录中,当我在iOS中打开它(使用window.open(encodeURI('offline-files/myFile.pdf'), '_blank');
)时,它运行正常!
如果我在Android中尝试相同的操作,那么它无法正常工作。例如,我的许多尝试之一:
function getPath()
{
// Get local path for Cordova
var path = window.location.pathname;
path = path.substr(path, path.length - 10);
return 'file://' + path;
}
cordova.plugins.fileOpener2.open(
getPath() + 'offline-files/myFile.pdf',
'application/pdf',
{
error: function (e)
{
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
},
success: function ()
{
console.log('file opened successfully');
}
}
);
Cordova将日志返回给我:"Error status: 9 - Error message: File not found"
还有一个奇怪的错误:Cordova文件插件返回给我一个找不到经典目录的错误文件:
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory,
function (dir)
{
/** SOME CODE **/
}
);
答案 0 :(得分:1)
您使用的是什么版本的Cordova?无论如何,我不会硬编码文件路径,而是从LocalFileSystem对象获取它。
var fs;
function fsSuccess(fileSystem)
{
fs = fileSystem;
}
function fsFail(event)
{
console.log(event.target.error.code);
}
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fsSuccess, fsFail);
然后通过以下方式访问根路径:
fs.root.toURL() + "yourfilename"
希望这有帮助!