一、 javascript 端的编写
第一个参数 成功的回调函数
第二个参数 失败的回调函数
第三个参数 是插件的类名称,也就是后台java文件的类名
第四个参数 执行的 action 名称 对应的是后台java代码中的action名称
第五个参数 传递的参数是一个数组
function helloworld(success,error,option){
cordova.exec(success, error, "HelloWorld", "echo", option);//option也可以使用[xxx,xxx],他是一个数组
}
$(document).ready(function(){ document.addEventListener("deviceready",onDeviceReady,false); }); function onDeviceReady(){ helloworld(function(succ){ alert('成功'+succ); },function(err){ alert('失败:'+err); },['HelloMobileWorld','testWorld']); } function helloworld(success,error,option){ cordova.exec(success, error, "HelloWorld", "echo1", option); }
二、注册插件
在Android :res/xml/ 这个目录下的配置文件下注册
<feature name="HelloWord"> <param name="android-package" value="org.apache.cordova.helloword.HelloWord"/> </feature>
三、 设置权限(需要调用权限的地方设置权限)
<uses-permission android:name="android.permission.SEND_SMS" />
四、java 代码编写
1、创建一个包列如:com.example.phonegap.plugin
2、包里创建一个class 列如:HelloWorld
package com.example.phonegap.plugin; import org.apache.cordova.api.CallbackContext; import org.apache.cordova.api.CordovaPlugin; import org.apache.cordova.api.PluginResult; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class HelloWorld extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("echo")) { //action=echo 这里对应的就是JavaScript端的第四个参数 ,如果跟里面的参数不一样是不会执行下面的代码的 String message = args.getString(0); //获取第五个参数 数组中的元素 HelloMobileWorld
this.echo(message, callbackContext); return true; }else{ callbackContext.error("这不是一个echo操作"); 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."); } } }