在我的应用程序中,当用户单击 webview 中的按钮时,将调用 phonegap 插件来触发异步任务以从 Internet 下载文件。现在我想在异步任务完成时将信号发送回 javascript 部分。但我不知道该怎么做,因为我的插件在异步任务完成之前已经发回了一些东西。有谁知道我如何在没有 Phonegap 插件的情况下通知我的 javascript 部分?
最佳答案
我也在 Phonegap Google Group 中问过这个问题,这是 Simon Mac Donald 的回复。它非常适合我:
您可以通过使用插件 API 非常轻松地处理这种情况。它 在核心 API 项 Connection 和 Battery 中实现。你什么 需要做的是:
1) 在插件的 execute() 方法中保存你得到的 callbackId。
2) 返回一个 NO_RESULT 插件结果并将保持回调 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 中的代码,了解我们如何将其用于连接和电池。
关于javascript - Android Phonegap : Notify javascript when an AsyncTask is finished,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751522/