在我的应用程序中,当用户单击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。