Android Phonegap:AsyncTask完成后通知javascript

Pea*_*oon 19 javascript android android-asynctask cordova

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

Pea*_*oon 35

我也在Phonegap Google Group中提出过这个问题,这是Simon Mac Donald的回应.它对我来说很完美:


您可以非常轻松地使用Plugin API来处理这种情况.它在核心API项目Connection和Battery中实现.你需要做的是:

1)在你的插件的execute()方法中保存你得到的callbackId.

2)返回NO_RESULT插件结果并将keep call id设置为true.

    PluginResult pluginResult = new  PluginResult(PluginResult.Status.NO_RESULT); 
    pluginResult.setKeepCallback(true); 
    return pluginResult; 
Run Code Online (Sandbox Code Playgroud)

3)当异步java方法完成后返回另一个插件结果,如下所示:

    PluginResult result = new PluginResult(PluginResult.Status.OK, data); 
    result.setKeepCallback(false); 
    this.success(result, this.myCallbackId); 
Run Code Online (Sandbox Code Playgroud)

正如我所说,您可以查看GitHub中的代码,了解我们如何将它用于Connection和Battery.