我有以下问题,我收到了cordova 2回调(成功和错误),我需要多次触发成功回调。
问题是cordova似乎不允许两次执行回调,它只执行一次。
//Will be executed once, whatever i do, only 1 time
callbacks.sendPluginResult(new PluginResult(PluginResult.Status.OK, contenedor.toString()));
// It doesn't trigger anymore of anyway :(
callbacks.success(contenedor.toString());
callbacks.sendPluginResult(new PluginResult(PluginResult.Status.OK, contenedor.toString()));
callbacks.success(contenedor.toString());
由于某种原因,我需要每x次发送一次字符串多次(我想实现这个执行成功回调),我需要重复回调:(
我尝试了this和this但没有成功,成功回调仍然只会触发一次!有没有办法轻松地执行两次回调?
已解决(facepalm)
如果有人遇到此问题,请快速解决:
PluginResult resulta = new PluginResult(PluginResult.Status.OK, "first response");
resulta.setKeepCallback(true);
callbacks.sendPluginResult(resulta);
PluginResult resultb = new PluginResult(PluginResult.Status.OK, "2nd response");
resultb.setKeepCallback(true);
callbacks.sendPluginResult(resultb);
请记住,如果是异步调用,我们需要先返回NO_RESULT
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
pluginResult.setKeepCallback(true); // Keep callback
return true; // in execute method
答案 0 :(得分:0)
今天我跳进了同一期杂志,然后遇到了这篇文章,所以我想再次回答以更好地理解。
因此,如果您想两次或更多次收到回调,则不要使用success()方法。我重复不要使用success()方法。这就是我被困住的地方。因此,仅使用以下
PluginResult result = new PluginResult(PluginResult.Status.OK, <Your Result>);
result.setKeepCallback(true);
callback.sendPluginResult(result);