我正在尝试根据此处找到的教程为Android开发Cordova插件:http://www.mat-d.com/site/tutorial-creating-a-cordova-phonegap-plugin-for-android-app/

到现在为止还挺好。但是,我想知道如何通过插件的Javascript代码发送数据/触发事件-例如,当用户点击 native 代码中的图标时,我希望Javascript执行某些操作。这可能吗?

最佳答案

所以我按如下方式工作:

我在插件中创建了一个私有(private)的CallbackContext对象:

private CallbackContext callbackContext;

并将其中存储的execute()方法中提供的CallbackContext存储在其中:
public boolean execute(final String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    this.callbackContext = callbackContext;
}

在Java代码的其他地方,我可以访问此回调并将其结果发送给它。但是,此回调在首次触发后将变为无效,除非将keepCallback设置为true:
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, "WHAT");
pluginResult.setKeepCallback(true);
callbackContext.sendPluginResult(pluginResult);

这使我成为一个快乐的露营者。我希望它可以帮助其他人!

10-07 18:38