第一步:编写插件类
package cn.xuetang.plugin; import android.widget.Toast; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; /** * Created by Wizzer on 14-8-28. */ public class ToastPlugin extends CordovaPlugin { public ToastPlugin() { } public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (this.cordova.getActivity().isFinishing()) return true; if (action.equals("show")) { this.show(args.getString(0)); } else if (action.equals("showlong")) { this.showlong(args.getString(0)); } else { return false; } callbackContext.success(); return true; } public void show(String message) { Toast.makeText(this.cordova.getActivity(), Toast.LENGTH_SHORT).show(); } public void showlong(String message) { Toast.makeText(this.cordova.getActivity(), message, Toast.LENGTH_LONG).show(); } }
第二步:配置 res/xml/config.xml
<feature name="ToastPlugin"> <param name="android-package" value="cn.xuetang.plugin.ToastPlugin" /> </feature>
注:这里的 feature name ,要和↓↓面讲的的js文件里一致。
第三步:创建js文件 plugins/toast.js
/** * Created by Wizzer on 14-8-28. */ cordova.define("cn.xuetang.plugin.ToastPlugin", function(require, exports, module) { var exec = require('cordova/exec'); module.exports = { /** * 一共5个参数 第一个 :成功回调 第二个 :失败回调 第三个 :将要调用的类的配置名字(在config.xml中配置↑↑) 第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分) 第五个 :传递的参数 以json的格式 */ show: function(message) { exec(null, null, "ToastPlugin", "show", [message]); }, showlong: function(message) { exec(null, null, "ToastPlugin", "showlong", [message]); } }; });
注:js里两个方法,分别对应类中的两个方法
第四步:修改 cordova_plugins.js 引用 tocas.js
在 module.exports = [ ] 中追加如下代码:
{ "file": "plugins/toast.js", "id": "cn.xuetang.plugin.ToastPlugin", "merges": [ "navigator.toast" ] }
最后:调用
navigator.toast.show("再点击一次退出"); navigator.toast.showlong("再点击一次退出");