[英]PhoneGap native plugin lifecycle
Android和iOS的phonegap本机插件生命周期如何?
想象一下,我有java / ObjectiveC代码正在为我的phonegap应用程序做一些工作,但是在我的插件中,我启动了几个线程来支持一小部分主要工作。 那么callbackContext.success();之后会发生什么? 是否仍然存在我的线程仍在运行的环境,或者我的虚拟机将在phonegap收到结果后停止???
提前致谢。
只要Webview处于活动状态,插件仍处于活动状态,但是默认情况下,插件只会触发一次回调
如果您的插件已初始化,并且希望它保持发送成功或错误回调到javascript端,则必须使用setKeepCallback(true);
选项。 为此,您需要在插件类中具有一个PluginResult
,然后使用callbackContext.sendPluginResult()
而不是callbackContext.success()
像这样的东西:
private PluginResult pgResult= null;
private CallbackContext cbContext;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("test".equals(action)) {
//Do something here
cbContext = callbackContext;
pgResult = new PluginResult(PluginResult.Status.OK);
pgResult.setKeepCallback(true);
cbContext.sendPluginResult(pgResult);
return true;
}
return false; // Returning false results in a "MethodNotFound" error.
}
//This method can be called when you receive native events or something like that
public void anotherMethod() {
//Here you can continue calling the javascript callbacks
pgResult = new PluginResult(PluginResult.Status.OK);
pgResult.setKeepCallback(true);
cbContext.sendPluginResult(pgResult);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.