在Cordova 3.4中不能使用异步方法.在第一次调用插件方法后不调用Onsuccess



以下代码不能正常工作:

public class TestPlugin extends CordovaPlugin {
   public static CallbackContext callbackContext;
   class TestRun implements Runnable {
      public void run() {
         try {
            Thread.sleep(10000);
         } catch (InterruptedException e) {}
         PluginResult result = new PluginResult(PluginResult.Status.OK, callbackContext.getCallbackId()); 
         result.setKeepCallback(false); 
         callbackContext.sendPluginResult(result); 
      }
   }
   @Override
   public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
      this.callbackContext = callbackContext;
      TestRun tr = new TestRun();
      new Thread(tr).start();
      return true;
   }
}
JS代码:
var Test = {
   getBTPrinters: function(successCallback, errorCallback) {
      cordova.exec(successCallback, errorCallback, "TestPlugin", "test", []);
      setTimeout(function(){ cordova.exec(successCallback, errorCallback, "TestPlugin", "test", []); }, 30000);
   }
}

回调onsuccess在我的Javascript代码中,当我第一次从TestPlugin调用一个方法时,不调用。
当我第二次从这个插件调用方法时,我从第一次调用中得到onsuccess回调。
在第三次调用插件的方法后,我从第二次调用中获得onsuccess回调。
以此类推。这是Cordova/Phonegap的bug吗?
或者我使用我的插件在一个错误的方式?

不断调用exec将强制处理消息。

setInterval(function () {
    cordova.exec(null, null, '', '', [])
}, 200);

相关内容

  • 没有找到相关文章

最新更新