我正在尝试根据此处找到的教程为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);
这使我成为一个快乐的露营者。我希望它可以帮助其他人!