PhoneGap + jQuery:如何在jQuery回调中访问FileWriter.write?

时间:2013-03-22 21:45:46

标签: javascript jquery html5 cordova callback

我正在使用手机间隙,请参阅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);
    });
}

如何在完成的回调中调整intrattenimento_write.write方法?!?!

我收到错误

  

03-22 22:02:56.896:E / Web Console(27627):TypeError:结果   表达式'intrattenimento_writer.write'[undefined]不是   功能。在file:///android_asset/www/app.js:62

1 个答案:

答案 0 :(得分: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");
}