使用 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 返回日志:“错误状态:9 - 错误消息:找不到文件”
还有一个奇怪的错误:Cordova 文件插件向我返回一个找不到经典目录的错误文件:
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory,
function (dir)
{
/** SOME CODE **/
}
);
最佳答案
您使用的是哪个版本的 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"
希望这对您有所帮助!
关于android - Cordova FileOpener Android - 找不到本地文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28414344/