自己开发的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上完好运行!:)
相关推荐
使用说明: 1、百度云推送 打开AndroidManifest.xml,将百度开发者中心api_key复制value后的引号中。 <meta-data android:name="api_key" android:value="" /> 打开www下的index.html文件,把api_key替掉为开者中心...
在Cordova项目中,这通常涉及到使用`cordova plugin add`命令,指向插件的本地路径或远程Git仓库。 在项目中集成插件后,开发者可以在JavaScript代码中调用相应的API进行二维码扫描。例如,调用`cordova.plugins....
而【百度地图定位Cordova插件】就是这样的一个桥梁,它提供了JavaScript接口,使得开发者可以在Web应用中调用原生的百度地图定位服务。 要在项目中使用该插件,你需要先在百度地图开放平台注册并创建应用,获取应用...
标签中的“cordova android 蓝牙官方demo”提示我们,可能有一个官方提供的示例项目,用于演示如何在Cordova应用中使用蓝牙插件。官方示例通常包含完整的代码和详细的文档,帮助开发者快速上手并理解如何实际操作。 ...
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
- 初始化插件:在新目录下运行`cordova plugin add .`,这会生成必要的配置文件,如`plugin.xml`。 3. **编写插件代码** - 在`plugin.xml`中定义插件ID和JavaScript接口。 - 创建`src/android`目录,并在其中...
Apache Cordova 3.3 插件,可在 Android Kitkat 上启用沉浸式模式 有关沉浸式模式的更多信息, 安装 科尔多瓦插件添加 用法 当设备准备好... ###沉浸式模式 Immersify.enable(successCallback, errorCallback); ...
本文将深入探讨一个特定的 Android 版 Cordova 插件——人脸识别插件,以及如何在实际项目中使用它。 首先,让我们理解人脸识别技术的基本原理。人脸识别是一种生物特征识别技术,它基于人的面部特征信息进行身份...
cordova-screenshot cordova截屏插件 document.addEventListener("deviceready", init, false); function init() { document.querySelector("#share").addEventListener("touchend", function() { navigator....
这个Key是连接你的应用和友盟服务器的唯一标识,需要在插件配置中正确填写。此外,根据平台的不同,可能还需要对应用的权限设置、初始化代码、事件跟踪等方面进行调整。 在实际应用中,友盟统计插件能帮助开发者...
在移动应用开发领域,Cordova 是一款非常流行的开源框架,它允许开发者使用Web...在实际操作中,理解Cordova的架构和插件机制,以及如何在Ionic项目中有效地管理和使用这些插件,是成为一名成功的Cordova开发者的关键。
博文《Cordova AppBrowser插件的特殊应用场景》可能详细介绍了如何配置和使用这个插件,以及在哪些情况下它能发挥重要作用。 集成`appbrowser`插件的步骤通常包括: 1. 添加插件:使用Cordova命令行工具或配置文件...
在iOS和Android系统中,系统级别的通知管理通常会自动处理角标的显示和更新,但在Cordova应用中,由于是基于Web技术开发,我们需要借助特定的插件来实现这一功能。"cordova-plugin-badge"便是这样一个插件,它提供了...
对于希望在iOS上实现类似功能的应用,可以寻找其他兼容iOS的Cordova插件,或者直接使用Cordova的`navigator.camera` API来获取照片,并通过`navigator.camera.getPicture`方法的`destinationType`参数选择保存到...
- 安装插件:在Cordova项目中,使用`cordova plugin add <插件路径>`或`cordova plugin add <插件ID>`。 - 使用插件:在Web应用的JavaScript中,直接调用插件提供的方法。 ### 6. 其他注意事项 - 版本控制:确保你...
在安卓项目整合Cordova 时,安装的Cordova插件下载
- 在插件的 JavaScript 部分,你需要定义一个对象或函数,用于暴露给 Cordova 应用程序。这通常是通过 `cordova.exec` 函数完成的,它接受四个参数:successCallback、errorCallback、service 和 action。 3. **...
1. **创建项目结构**:首先,你需要在 Cordova 项目的 `plugins` 目录下创建一个新的目录,作为你的插件源码存放位置,例如 `helloworld`。在这个目录下,你需要创建两个子目录:`android`(用于放置 Android 平台的...