Cordova FileOpener Android - 无法找到本地文件位置

时间:2015-02-09 16:20:59

标签: android file cordova phonegap-plugins

使用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 **/
    }
);

1 个答案:

答案 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"

希望这有帮助!