0

我正在使用电话间隙,请参阅http://docs.phonegap.com/en/1.5.0/phonegap_file_file.md.html#FileWriter

我正在尝试这样做:

我将 FileWriter(HTML5 对象)传递给一个函数。

我需要下载一个文件,然后使用写入器写入文件,但是......如何从回调内部访问文件写入器?

function onNotGotIntrattenimento() {
    sdcard.getFile("maiscai/intrattenimento.js", 
                   {create: true, exclusive: false}, 
                    onCreatedIntrattenimentoWriter, onError);

}

function onCreatedIntrattenimentoWriter (intrattenimento_writer) {
    intrattenimento_writer.onwrite = onIntrattenimentoUpdated();
    downloadIntrattenimento(intrattenimento_writer);
}

function downloadIntrattenimento(intrattenimento_writer) {

    $.ajax({
        url: intrattenimento_link,
        context: document.body
    }).done(function(data) {
        intrattenimento_writer.write(data);
    });
}

如何在 done 回调中调用 intrattenimento_write.write 方法?!?!

我收到一个错误

03-22 22:02:56.896:E/Web 控制台(27627):TypeError:表达式“intrattenimento_writer.write”[未定义] 的结果不是函数。在文件:///android_asset/www/app.js:62

4

1 回答 1

3

会不会是你有拼写错误?你错过了最后一个'r':

你有:

intrattenimento_write.write(data);

它应该是:

intrattenimento_writer.write(data);

更新:既然你纠正了原来的问题,我上面的回答就没有任何意义了。但是,您现在显示的代码是绝对正确的。你应该可以访问intrattenimento_writer就好了。

你确定你的intrattenimento_write变量有一个write功能吗?如果是这样,您能否显示与该函数关联的代码?

更新 2:

我刚刚查看了您提供的 PhoneGap 文档。首先让我说我对 PhoneGap 完全没有经验,但是从文档看来,您似乎需要先createWriter在对象上使用该方法,intrattenimento_write然后才能使用write. 看看他们使用的例子:

function gotFS(fileSystem) {
    fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
    ...
    writer.write("some sample text");
}
于 2013-03-22T21:47:43.087 回答