当前位置:首页 > 开发 > 移动开发 > 正文

ToastPlugin插件在cordova3.3下使用

发表于: 2014-02-27   作者:dibov   来源:转载   浏览:
摘要:     自己开发的Todos应用,想实现“ 再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。       ToastPlugin.java package&nbs
    自己开发的Todos应用,想实现“ 再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
 
    ToastPlugin.java
package  com.hy.todos.plugins;
 
import  org.apache.cordova.CallbackContext;
import  org.apache.cordova.CordovaPlugin;
import  org.json.JSONArray;
import  org.json.JSONException;
 
import  android.util.Log;
import  android.widget.Toast;
 
public  class  ToastPlugin  extends  CordovaPlugin
{    
     @Override
     public  boolean  execute(String action, JSONArray data,  final  CallbackContext callbackContext)
    {
         int  tmpDuration;
        String tmpText =  "none" ;
        Log.i( "ToastPlugin"  ,  "ToastPlugin json data::"  +data);
         try
        {
            tmpText = data.getString(0);
        }
         catch  (JSONException e)
        {
            callbackContext.error(  "Parsing Text Exception" );
             return  false ;
        }
         try
        {
            tmpDuration = data.getInt(1);
        }
         catch  (JSONException e)
        {
            callbackContext.error(  "Parsing Duration Exception" );
             return  false ;
        }
 
        showMsg(tmpText,tmpDuration);
         return  true ;
    }
   
     public  synchronized  void  showMsg( final  String msg,  final  int  duration) {
           Runnable runnable =  new  Runnable() {
                  public  void  run() {  
                     Toast. makeText( cordova .getActivity(), msg, duration).show();
                     
                }
           };
             cordova .getActivity().runOnUiThread(runnable);
     }
   
}
 
Toast-Plugin.js
var  Toast=  function () {
};
 
Toast. prototype  .LENGTH_SHORT = 0;
Toast. prototype  .LENGTH_LONG = 1;
 
Toast. prototype  .show =  function  (msg, duration ,successCallback, failureCallback){
      return  cordova.exec(
           successCallback,   
           failureCallback,    
             'ToastPlugin' ,
             null ,             
           [msg, duration]       
     );
};
 
//Short Toast
Toast. prototype  .shortshow =  function  (msg,successCallback, failureCallback){    
      this .show(msg,  this .LENGTH_SHORT ,successCallback, failureCallback);
};
 
//Long Toast
Toast. prototype  .longshow =  function  (msg,successCallback, failureCallback){    
      this .show(msg,  this .LENGTH_LONG ,successCallback, failureCallback);
};
 
cordova.addConstructor( function () {
     if  (!window.plugins) {
           window.plugins = {};
     }
     window.plugins.toast =  new  Toast();
});
 
在deviceready事件中注册用户触发返回键的backbutton事件,在其中进行逻辑处理和调用插件代码:
var  quitflag = 0;
     
     document.addEventListener(  "deviceready" ,onDeviceReady,  false );
     function  onDeviceReady() {
           navigator.splashscreen.hide(); 
           document.addEventListener(  "backbutton" , eventBackButton,  false );  //注册返回键
    }
     function  eventBackButton(){
      if (window.plugins.toast){
           console.log(  "window.plugins.Toast......" );
           window.plugins.toast.shortshow(  "再按一次返回键退出程序"  );
     }
 
    quitflag++;
    setTimeout( function () {
                quitflag = 0;
           }, 3000);
 
             if  (quitflag >= 2) {
                navigator.app.exitApp();
           }    
    }
 
调试了好几次发现能正常按2此返回键退出代码,但确没有信心提示。最后发现是没有在config.xml中进行插件配置声明。晕!
< feature  name =  "ToastPlugin" >
    < param  name  = "android-package"  value =  "com.hy.todos.plugins.ToastPlugin"  />
</ feature  >
 
至此,ToastPlugin插件在Cordova3.3上完好运行!:)

ToastPlugin插件在cordova3.3下使用

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
首先说一下本人的环境: Windows7 64位系统 Spring Tool Suite Version: 3.4.0.RELEASE Hadoop2.6.0
这段时间学习<<netty权威指南>>过程中 偶遇到了XML绑定框架 jibx。书中是使用ant构建和
一、环境配置 1、Eclipse 版本 3.3.X 2、Hadoop版本 0.20.2 二、配置流程 1、将/hadoop-0.20.2/hado
一、环境配置 1、Eclipse 版本 3.3.X 2、Hadoop版本 0.20.2 二、配置流程 1、将\hadoop-0.20.2\hado
在Eclipse下生成jar包分很多种情况。最简单的情况是没有用到第三方jar包,那么直接Export就可以生成
安装egit 打开Eclipse的Marketplace,在搜索框中输入egit即可,可以看到Eclipse4.4已经默认安装了eg
Eclipse上安装GIT插件EGit及使用 一、Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-
【http://youzitool.com 新博客,欢迎访问】 前提,请先配置好Hadoop集群,并启动Hadoop守护进程。
一、环境配置 1、Eclipse 版本 3.3.X 2、Hadoop版本 0.20.2 二、配置流程 1、将/hadoop-0.20.2/hado
一、场景介绍 两个工程 Project1,Project2(将被混淆的工程)。Project1 将通过 Maven 依赖配置的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号