Ant*_*hea 2 android cordova cordova-plugins
我正在编写一个自定义插件,它在后面的代码中执行一些繁重的工作。我有时想发送进度更新,以便可以在 Ionic 中显示它。我在 CallbackContext 中找不到合适的方法。只能发送一次成功回调。如何实现发送进度回调?
private void doHeavyStuff(final CallbackContext callbackContext){
something.execute(new ResponseHandler() {
@Override
public void onProgress(String message) {
callbackContext.success(message); //what else ?
}
@Override
public void onFailure(String message) {
callbackContext.error(message);
}
@Override
public void onSuccess(String message) {
callbackContext.success(message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
您可以使用setKeepCallback()来停止在调用时删除回调实例,从而允许多次调用它:
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
if(action.equals("doHeavyStuff"){
// Start doing async heavy stuff...
// Preserve callback
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
pluginResult.setKeepCallback(true);
callbackContext.sendPluginResult(pluginResult);
return true;
}
}
private void doHeavyStuff(final CallbackContext callbackContext){
something.execute(new ResponseHandler() {
@Override
public void onProgress(String message) {
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, message);
pluginResult.setKeepCallback(true); // keep callback
callbackContext.sendPluginResult(pluginResult);
}
@Override
public void onFailure(String message) {
callbackContext.error(message);
}
@Override
public void onSuccess(String message) {
callbackContext.success(message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |