我想用cordova构建一个Android应用程序。在这个应用程序中,我们使用(本机)操作栏,并希望从cordova插件添加按钮。我有一个关于如何在我的插件中获取onCreateOptionsMenu事件的问题。我需要它,因为插件使用活动按钮接收数据(取决于每个视图)。有没有办法在我的插件中执行此操作?
/*
* Hook in Cordova for menu plugins
*
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.postMessage("onCreateOptionsMenu", menu);
return super.onCreateOptionsMenu(menu);
}
我看到他们在他们的CordovaActivity.java中有这样的东西,但我不知道如何在我的插件中收到这个?
请帮助我,
谢谢你:)答案 0 :(得分:1)
我认为,根据我的理解,您希望为混合应用程序添加本机功能吗?因此,您需要为您的案例使用cordova.exec API。
首先需要在config.xml中声明自定义插件
<feature name="CustomPlugin">
<param name="android-package" value="com.AndroidApacheCordovaPlugin.CustomPlugin" />
</feature>
使用Java代码实现插件
public class CustomPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext)
throws JSONException {
if (action.equals("sayHello")){
try {
String responseText = "Hello world, " + args.getString(0);
callbackContext.success(responseText);
} catch (JSONException e){
callbackContext.error("Failed to parse parameters");
}
return true;
}
return false;
}
}
从JavaScript调用插件
function initial(){
var name = $("#NameInput").val();
cordova.exec(sayHelloSuccess, sayHelloFailure, "CustomPlugin", "sayHello", [name]);
}
function sayHelloSuccess(data){
alert("OK: " + data);
}
function sayHelloFailure(data){
alert("FAIL: " + data);
}
答案 1 :(得分:1)
您看到了CordovaPlugin.onMessage(String id, Object data)
吗?
我认为您可以在自定义插件中实现此方法并侦听"onCreateOptionsMenu"
消息ID,然后操作选项菜单?
我之前没有尝试过这样的事情,但我认为这可能就是它的完成方式。