在我的应用程序中,当用户单击Web View 中的按钮时,将调用phonegap插件来触发asynctask以从Internet下载文件。现在,我想在asynctask完成时将信号发送回javascript部分。但是我不知道该怎么做,因为我的插件在asynctask完成之前已经发送了一些东西。有谁知道我该如何在Phonegap中无需插件的情况下通知我的javascript部分?

最佳答案

我也在Phonegap Google Group中问了这个问题,这是Simon Mac Donald的回复。它非常适合我:

您可以通过使用Plugin API轻松处理这种情况。它
在核心API项“连接和电池”中实现。你什么
需要做的是:

1)在您插件的execute()方法中保存您获得的callbackId。

2)返回一个NO_RESULT插件结果,并将keep回调ID设置为true。

    PluginResult pluginResult = new  PluginResult(PluginResult.Status.NO_RESULT);
    pluginResult.setKeepCallback(true);
    return pluginResult;

3)当异步java方法完成后,返回另一个插件结果,如下所示:
    PluginResult result = new PluginResult(PluginResult.Status.OK, data);
    result.setKeepCallback(false);
    this.success(result, this.myCallbackId);

正如我说的,您可以查看GitHub中的代码,以了解我们如何将其用于Connection and Battery。

07-26 00:07