Cordova文件打开器Android版-找不到本地文件位置

3
使用 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文件插件向我返回一个错误,指出无法在classic目录中找到文件:

window.resolveLocalFileSystemURL(cordova.file.applicationDirectory, 
    function (dir)
    { 
        /** SOME CODE **/
    }
);
1个回答

2
你使用的是哪个版本的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"

希望这可以帮助你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接