`
dibov
  • 浏览: 1245 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

ToastPlugin插件在cordova3.3下使用

阅读更多
    自己开发的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上完好运行!:)
分享到:
评论

相关推荐

    phonegap/cordova 3.3百度云推送、条码扫描源码

    使用说明: 1、百度云推送 打开AndroidManifest.xml,将百度开发者中心api_key复制value后的引号中。 &lt;meta-data android:name="api_key" android:value="" /&gt; 打开www下的index.html文件,把api_key替掉为开者中心...

    cordova二维码扫描插件

    在Cordova项目中,这通常涉及到使用`cordova plugin add`命令,指向插件的本地路径或远程Git仓库。 在项目中集成插件后,开发者可以在JavaScript代码中调用相应的API进行二维码扫描。例如,调用`cordova.plugins....

    百度地图定位Cordova插件

    而【百度地图定位Cordova插件】就是这样的一个桥梁,它提供了JavaScript接口,使得开发者可以在Web应用中调用原生的百度地图定位服务。 要在项目中使用该插件,你需要先在百度地图开放平台注册并创建应用,获取应用...

    支持android 蓝牙设备插件 cordova的插件

    标签中的“cordova android 蓝牙官方demo”提示我们,可能有一个官方提供的示例项目,用于演示如何在Cordova应用中使用蓝牙插件。官方示例通常包含完整的代码和详细的文档,帮助开发者快速上手并理解如何实际操作。 ...

    cordova-android-3.3 插件+源码

    1,cordova-android-3.3.0 源码 ...3,cordova-android-3.3.jar https://git-wip-us.apache.org/repos/asf?s=cordova config.xml请移步看文章:http://blog.csdn.net/vpivot/article/details/17376789

    Immersify:Apache Cordova 3.3 插件,可在 Android Kitkat 上启用沉浸式模式

    Apache Cordova 3.3 插件,可在 Android Kitkat 上启用沉浸式模式 有关沉浸式模式的更多信息, 安装 科尔多瓦插件添加 用法 当设备准备好... ###沉浸式模式 Immersify.enable(successCallback, errorCallback); ...

    Android版cordova人脸识别插件

    本文将深入探讨一个特定的 Android 版 Cordova 插件——人脸识别插件,以及如何在实际项目中使用它。 首先,让我们理解人脸识别技术的基本原理。人脸识别是一种生物特征识别技术,它基于人的面部特征信息进行身份...

    Android-Cordova插件-用于播放海康监控视频

    - 初始化插件:在新目录下运行`cordova plugin add .`,这会生成必要的配置文件,如`plugin.xml`。 3. **编写插件代码** - 在`plugin.xml`中定义插件ID和JavaScript接口。 - 创建`src/android`目录,并在其中...

    cordova-screenshot cordova截屏插件

    cordova-screenshot cordova截屏插件 document.addEventListener("deviceready", init, false); function init() { document.querySelector("#share").addEventListener("touchend", function() { navigator....

    友盟统计插件 for cordova

    这个Key是连接你的应用和友盟服务器的唯一标识,需要在插件配置中正确填写。此外,根据平台的不同,可能还需要对应用的权限设置、初始化代码、事件跟踪等方面进行调整。 在实际应用中,友盟统计插件能帮助开发者...

    自定义cordova插件

    在移动应用开发领域,Cordova 是一款非常流行的开源框架,它允许开发者使用Web...在实际操作中,理解Cordova的架构和插件机制,以及如何在Ionic项目中有效地管理和使用这些插件,是成为一名成功的Cordova开发者的关键。

    senchatouch相机使用和cordova appbrowser插件使用案例

    博文《Cordova AppBrowser插件的特殊应用场景》可能详细介绍了如何配置和使用这个插件,以及在哪些情况下它能发挥重要作用。 集成`appbrowser`插件的步骤通常包括: 1. 添加插件:使用Cordova命令行工具或配置文件...

    cordova显示角标插件

    在iOS和Android系统中,系统级别的通知管理通常会自动处理角标的显示和更新,但在Cordova应用中,由于是基于Web技术开发,我们需要借助特定的插件来实现这一功能。"cordova-plugin-badge"便是这样一个插件,它提供了...

    cordova-android保存图片插件

    对于希望在iOS上实现类似功能的应用,可以寻找其他兼容iOS的Cordova插件,或者直接使用Cordova的`navigator.camera` API来获取照片,并通过`navigator.camera.getPicture`方法的`destinationType`参数选择保存到...

    cordova自定义插件

    - 安装插件:在Cordova项目中,使用`cordova plugin add &lt;插件路径&gt;`或`cordova plugin add &lt;插件ID&gt;`。 - 使用插件:在Web应用的JavaScript中,直接调用插件提供的方法。 ### 6. 其他注意事项 - 版本控制:确保你...

    Cordova配置插件下载Cordovaplugin.sh

    在安卓项目整合Cordova 时,安装的Cordova插件下载

    cordova ios 自定义插件例子

    - 在插件的 JavaScript 部分,你需要定义一个对象或函数,用于暴露给 Cordova 应用程序。这通常是通过 `cordova.exec` 函数完成的,它接受四个参数:successCallback、errorCallback、service 和 action。 3. **...

    Android Cordova 插件开发之编写自定义插件

    1. **创建项目结构**:首先,你需要在 Cordova 项目的 `plugins` 目录下创建一个新的目录,作为你的插件源码存放位置,例如 `helloworld`。在这个目录下,你需要创建两个子目录:`android`(用于放置 Android 平台的...

Global site tag (gtag.js) - Google Analytics