- 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();
- }
- }
- <feature name="ToastPlugin">
- <param name="android-package" value="cn.xuetang.plugin.ToastPlugin" />
- </feature>
注:这里的 feature name ,要和↓↓面讲的的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里两个方法,分别对应类中的两个方法
在 module.exports = [ ] 中追加如下代码:
- {
- "file": "plugins/toast.js",
- "id": "cn.xuetang.plugin.ToastPlugin",
- "merges": [
- "navigator.toast"
- ]
- }
- navigator.toast.show("再点击一次退出");
- navigator.toast.showlong("再点击一次退出");