以下代码不能正常工作:
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);