Cordova resolveLocalFileSystemURL回调没有被触发

时间:2014-12-15 08:28:29

标签: android cordova ibm-mobilefirst

我一直试图运行以下代码但是没有调用回调[ok()和ko()]。
使用Worklight 6.2(Cordova 3.4)。

function wlCommonInit() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
            success, fail);

    window.resolveLocalFileSystemURL(cordova.file.applicationDirectory
            + "www/index.html", ok, ko);
}

function ko(e) {
    alert("NO");
}

function ok(fileEntry) {
    alert("OK");
}

另一方面requestFileSystem会定期调用回调。

2 个答案:

答案 0 :(得分:0)

由于Cordova缺陷,问题中的代码段在Android中无效:https://issues.apache.org/jira/browse/CB-7273

为了进一步发展,有助于了解您对文件本身的计划。

  • 您是否只想要文件的路径
  • 或者您想要更改文件的内容吗?

您可以在此问题/答案中阅读有关Cordova中文件系统操作的更多信息:Where does LocalFileSystem.PERSISTENT point to?

答案 1 :(得分:0)

我设法使用XMLHttpRequest Android 环境中的 Worklight 中访问本地文件:

//Works only on Android
function prendiCaricaRisorsaWorklight(percorsoPiuNomeFile) {

    var xmlhttp = new XMLHttpRequest();
    var risposta = "";
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4
                && (xmlhttp.status == 200 || xmlhttp.status == 0)) {
            risposta = xmlhttp.responseText; 
            alert(risposta); 
        }
    }
    xmlhttp.open("GET", "file:///android_asset/www/default/"
            + percorsoPiuNomeFile, true);
    xmlhttp.send(null);
}

用法示例:

prendiCaricaRisorsaWorklight("css/cssInterno.css");
prendiCaricaRisorsaWorklight("js/jsInterno.js");

这会在 Android 上显示包含文件内容的提醒。