用于android的cordova自定义插件

时间:2014-05-13 06:42:51

标签: java android cordova

我在我的Android应用程序中使用cordova,我想使用我的自定义插件。 但我收到错误 - exec()调用未知插件

这是我的HTML文件。

function callNativePlugin( returnSuccess ) {
    HelloPlugin.callNativeFunction( nativePluginResultHandler, nativePluginErrorHandler, returnSuccess );
}

function nativePluginResultHandler (result) {
    alert("SUCCESS: \r\n"+result );
}

function nativePluginErrorHandler (error) {
    alert("ERROR: \r\n"+error );
}

function newCall(){
    alert("function  ready");
    window.echo = function(str, callback) {
        cordova.exec(callback, function(err) {
            callback('Nothing to echo.');
        }, "HelloPlugin", "echo", [str]);
    };
    window.echo("echome", function(echoValue) {
        alert(echoValue == "echome"); // should alert true.
    });
}
           </script>
</head>
<body onload="onLoad()">
    <button onclick="newCall();">Click to invoke the Native Plugin with an SUCCESS!</button>
    <button onclick="callNativePlugin('error');">Click to invoke the Native Plugin with an ERROR!</button>

</body>

这是我的js文件

var HelloPlugin = {

    callNativeFunction: function (success, fail, resultType) {
        return cordova.exec(success, fail, "com.webview.HelloPlugin", "HelloPlugin", [resultType]);
    }
};

插件java文件

public class HelloPlugin extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        Log.i("Log msg","Log msg");
        return false;
    }
}

我的Config.js文件

<feature name="HelloPlugin">
    <param name="com.webview.HelloPlugin" value="com.ecsoftware.HelloPlugin" />
</feature>

1 个答案:

答案 0 :(得分:2)

您的config.xml应如下所示:

<feature name="com.webview.HelloPlugin"> 
    <param name="android-package" value="com.ecsoftware.HelloPlugin" />
</feature>

另请注意,这是config.xml文件夹中的res/xml/文件(而不是www文件夹中的文件)。