Cordova:Toast浮动提示插件

jerry Android 2015年11月23日 收藏

第一步:编写插件类

  1. package cn.xuetang.plugin;
  2.  
  3. import android.widget.Toast;
  4. import org.apache.cordova.CallbackContext;
  5. import org.apache.cordova.CordovaInterface;
  6. import org.apache.cordova.CordovaPlugin;
  7. import org.json.JSONArray;
  8. import org.json.JSONException;
  9.  
  10. /**
  11. * Created by Wizzer on 14-8-28.
  12. */
  13. public class ToastPlugin extends CordovaPlugin {
  14. public ToastPlugin() {
  15.  
  16. }
  17.  
  18. public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
  19. if (this.cordova.getActivity().isFinishing()) return true;
  20. if (action.equals("show")) {
  21. this.show(args.getString(0));
  22. } else if (action.equals("showlong")) {
  23. this.showlong(args.getString(0));
  24. } else {
  25. return false;
  26. }
  27. callbackContext.success();
  28. return true;
  29. }
  30.  
  31. public void show(String message) {
  32. Toast.makeText(this.cordova.getActivity(), Toast.LENGTH_SHORT).show();
  33. }
  34.  
  35. public void showlong(String message) {
  36. Toast.makeText(this.cordova.getActivity(), message, Toast.LENGTH_LONG).show();
  37. }
  38. }

 

第二步:配置 res/xml/config.xml

  1. <feature name="ToastPlugin">
  2. <param name="android-package" value="cn.xuetang.plugin.ToastPlugin" />
  3. </feature>

注:这里的 feature name ,要和↓↓面讲的的js文件里一致。

 

第三步:创建js文件 plugins/toast.js

  1. /**
  2. * Created by Wizzer on 14-8-28.
  3. */
  4. cordova.define("cn.xuetang.plugin.ToastPlugin", function(require, exports, module) {
  5. var exec = require('cordova/exec');
  6. module.exports = {
  7.  
  8. /**
  9. * 一共5个参数
  10. 第一个 :成功回调
  11. 第二个 :失败回调
  12. 第三个 :将要调用的类的配置名字(在config.xml中配置↑↑)
  13. 第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分)
  14. 第五个 :传递的参数 以json的格式
  15. */
  16. show: function(message) {
  17. exec(null, null, "ToastPlugin", "show", [message]);
  18. },
  19. showlong: function(message) {
  20. exec(null, null, "ToastPlugin", "showlong", [message]);
  21. }
  22. };
  23.  
  24. });

注:js里两个方法,分别对应类中的两个方法

 

第四步:修改 cordova_plugins.js 引用 tocas.js

在 module.exports = [ ] 中追加如下代码:

  1. {
  2. "file": "plugins/toast.js",
  3. "id": "cn.xuetang.plugin.ToastPlugin",
  4. "merges": [
  5. "navigator.toast"
  6. ]
  7. }

 

最后:调用

  1. navigator.toast.show("再点击一次退出");
  2. navigator.toast.showlong("再点击一次退出");