如何从android中的javascript函数调用本机cordova插件?

时间:2013-03-13 06:29:42

标签: android cordova

我创建了一个扩展CordovaPlugin的java类。

例如,

public class SampleCardovaPlugin extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("echo")) {
            String message = args.getString(0); 
            this.echo(message, callbackContext);
            return true;
        }
        return false;
    }
private void echo(String message, CallbackContext callbackContext) {
    if (message != null && message.length() > 0) { 
        callbackContext.success(message);
    } else {
        callbackContext.error("Expected one non-empty string argument.");
    }
}

}

我正在使用cordova2.5.0。

如何从我的javascript函数中调用此插件? 请做好。

2 个答案:

答案 0 :(得分:2)

您必须先在res文件夹的config.xml中注册您的插件。

然后在javascript:

cordova.exec(
    function(winParam) {},
    function(error) {},
    "service",
    "action",
    ["firstArgument", "secondArgument", 42, false]);

所以在你的情况下

cordova.exec(
    function(data) { console.log(data);},
    function(error) { console.log(error);},
    "SampleCardovaPlugin",
    "echo",
    ["echo"]);

您还必须确保设备已准备就绪

看看http://docs.phonegap.com/en/2.0.0/guide_plugin-development_index.md.html

答案 1 :(得分:0)

您必须创建插件(java类,package.json,plugin.xml ...),没有比这更简单的方法了。但是您可以创建一个非常简单的文件(比文档中的文件要容易得多)-> read more here on my blog

然后您在JS中这样调用它:

cordova.exec(function(success) {},          //success callback
         function(error) {},                //error callback
         "Example",                         //class name
         "YOUR_ACTION_NAME_PARAMETER",      //action name 
         ["Dog", "Pig", 42, false]);        //args