我是第一次开发cordova插件,并陷入以下问题。
我创建了一个扩展CorodvaPlugin的类,并覆盖了给定的execute方法。我想要的是asynctask完成后台任务后,将响应返回给JS,并且将值显示在HTML上,但有时会显示值,有时却不显示所发生的事情。任何帮助将不胜感激。
@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext) throws JSONException {
try {
context = this.cordova.getActivity().getApplicationContext();
this.mMyCallbackContext = callbackContext;
new WSCall().execute();
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
pluginResult.setKeepCallback(true);
mMyCallbackContext .sendPluginResult(pluginResult);
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
并在异步任务后执行我已经做到了
@Override
protected void onPostExecute(String result) {
PluginResult result_;
if(groups!=null)
result_ = new PluginResult(PluginResult.Status.OK, groups);
else if(ret_msg!=null)
result_ = new PluginResult(PluginResult.Status.OK, ret_msg);
else
result_ = new PluginResult(PluginResult.Status.OK, "");
result_.setKeepCallback(false);
mMyCallbackContext.sendPluginResult(result_);
pDialog.dismiss();
}
最佳答案
Use this link
并且不要从execute方法返回true,仅返回Pluginresult。