我做了很多研究,似乎无法找到为什么这不起作用.我所拥有的是运行Cordova 2.7.0的 Eclipse中基于Cordova的 Android应用程序.我想构建一个简单的插件,只需在用户完成时提醒用户. 我的index.htm
我的index.html
<head> <script type="text/javascript" src="cordova-2.7.0.js"></script> <script> window.func = function(str,callback){ alert("Outside Call Working"); cordova.exec(callback, function(err){alert(err)},"HelloPlugin","echo", [str]); } function callPlugin(str){ alert("JS Working"); window.func(str,function(){ alert("Done!"); }); } </script> </head> <body> <h2>PluginTest</h2> <a onclick="callPlugin('Plugin Working!')">Click me</a> </body>
我在我添加插件的config.xml行
<plugin name="HelloPlugin" value="org.apache.cordova.plugin.HelloPlugin" />
我的实际插件HelloPlugin.java位于MainActivity.java旁边的src / com / example / plugintest中
package com.example.plugintest; import org.apache.cordova.api.CallbackContext; import org.apache.cordova.api.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; public class HelloPlugin extends CordovaPlugin{ @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { /*if(action.equals("echo")){ String message = args.getString(0); callbackContext.success(message); return true; }*/ callbackContext.success(action); return true; } }
任何帮助是极大的赞赏!
config.xml中“HelloPlugin”的值应指向Java类所在的包,以便Cordova可以找到并执行Java代码.所以如果你改变了 < plugin name =“HelloPlugin”value =“org.apache.cordova.plugin.HelloPlugin”/> 至 < plugin name =“HelloPlugin”value =“com.example.plugintest.HelloPlugin”/> 我相信它应该有效.