PhoneGap / Cordova for android file plugin错误代码1

时间:2016-02-04 04:46:38

标签: javascript android file cordova phonegap-plugins

我正在使用phonegap,我想从Android设备访问位于www / res的文件,但它正在扔NOT_FOUND_ERR ...我确定它所在的文件和这是我写的代码:

{{1}}

代码非常简单,但我无法看到它的错误!

3 个答案:

答案 0 :(得分:2)

本地网址cordova.file.applicationDirectory适用于iOS但不适用于Android。 您必须遍历cordova.file.dataDirectory,直到找到/ res目录作为GUID命名的app目录的子目录。

尝试以下方法:

var dirEntry = function (entry) {
    var dirReader = entry.createReader();
    dirReader.readEntries(
        function (entries) {
            $.each(entries, function (n, i) {
                if (i.isDirectory === true) {
                    if (i.nativeURL.indexOf('www/res') > -1) {
                        //found the target /res directory
                        var path = i.nativeURL + '/myfile.txt';
                        window.resolveLocalFileSystemURL(path, app.gotFile, app.fail);
                        return false; //no need to iterate more
                    } else {
                        // Recursive -- call back into this subdirectory
                        dirEntry(i);
                    }
                }
            });

        },
        function (error) {
            console.log("readEntries error: " + error.code);
        }
    );
};

var dirError = function (error) {
    console.log("getDirectory error: " + error.code);
};

window.resolveLocalFileSystemURL(cordova.file.dataDirectory, dirEntry, dirError);

答案 1 :(得分:1)

我可以尝试你给出的代码。如果您将函数名称resolveLocalFileSystemURL更改为resolveLocalFileSystemURI,它可以正常工作,至少对我而言。您可以看到PhoneGap documentation

答案 2 :(得分:-1)

您可以尝试使用相对路径。当然,这取决于您在问题中所述的代码所在的位置。我假设此代码位于默认的phonegap index.js文件中,其目录为“www / js / index.js”。 txt文件的相对路径为'../ res / myfile.txt'。

window.resolveLocalFileSystemURL("../res/myfile.txt", app.gotFile, app.fail);