我是第一次开发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。

08-18 17:40