繁体   English   中英

PhoneGap本机插件生命周期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM