android - Cordova FileOpener Android - 找不到本地文件位置

标签 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 返回日志:“错误状态: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/

相关文章:

android - 在 PhoneGap 中启用数字键盘上的 Enter 键

c - 如何使用 lseek 检查文件中的当前偏移位置?

android - CSS3 动画不适用于 Android 4.2

android - Android 上的 PhoneGap 是否需要所有这些权限?

c# - 在 C# 中将文本写入新文件时遇到困难,根路径错误,访问被拒绝

android - 我的 cordova 应用程序在检测到 NFC 标签后无法启动

java - 这一行应该是什么? ( java )

android - 像 Flickr 这样的安卓自定义图片库

android - 通过 bash 脚本获取 Android Studio 项目的构建文件夹路径

c# - 如何知道要在 Windows 中创建的下一个临时文件?