未捕获的ReferenceError:在CORDOVA中未定义LocalFileSystem

时间:2014-02-12 07:34:58

标签: android file cordova

我已经研究了很多问题,但这些问题并没有解决我的问题 我已经安装了文件插件 当我键入`cordova plugin ls时,我得到以下结果:

[ 'org.apache.cordova.file' ]

在androidmanifest.xml中我有:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在app / res / xml / config.xml中我有:

<feature name="File">
    <param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>

这是我的代码:

document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    fileEntry.file(gotFile, fail);
}

function gotFile(file){
    readDataUrl(file);
    readAsText(file);
}

function readDataUrl(file) {
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        console.log("Read as data URL");
        console.log(evt.target.result);
    };
    reader.readAsDataURL(file);
}

function readAsText(file) {
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        console.log("Read as text");
        console.log(evt.target.result);
        document.getElementById('file_status').innerHTML = evt.target.result;
    };
    reader.readAsText(file);
}

function fail(error) {
    console.log(error.code);
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我在这个问题上花了很多时间。

对我而言,即使您使用的是Crosswalk引擎, jQuery文档就绪事件也不会触发Android(Cordova,Phonegap) ! / p>

您必须将任何文档就绪事件切换为:

HTML:

<body onload="onLoad()">

JS:

function onLoad()
{
    document.addEventListener("deviceready", onDeviceReady, false);
}