PhoneGap API 之事件处理_双击返回键退出程序

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery  Mobile  Web 应用程序</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>

<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">

    //使用jQuery mobile设置提示框的信息
    function showMyAlert(text) {
        $.mobile.loadingMessageTextVisible = true;
        $.mobile.showPageLoadingMsg("a", text, true);
    }

    //弹出提示框信息的方法,两秒后隐藏
    function myAlert(text) {
        showMyAlert(text);
        setTimeout(hideLoading, 2000);
    }

    //隐藏提示框的方法
    function hideLoading() {
        $.mobile.hidePageLoadingMsg();
    }
    //退出app
    function exitApp() {
        navigator.app.exitApp();
    }
</script>
<script type="text/javascript">
    $(function(){
        document.addEventListener(‘deviceready‘,myDeviceready,false);
    })

    function myDeviceready(){
        console.log(‘设备加载完成‘);

        document.addEventListener(‘backbutton‘,myBackbutton,false);
    }

    //点击返回按钮的事件
    function myBackbutton(){
        //下面的if判断页面是否是id为indexPage的页面如果是才执行,否则执行else的返回上一页
        if ($.mobile.activePage.is(‘#indexPage‘)) {
            myAlert(‘再点击一次退出!‘);
            document.removeEventListener("backbutton", myBackbutton, false); // 注销返回键
            document.addEventListener("backbutton", exitApp, false);// 通过监听返回键绑定退出事件
            // 3秒后重新注册
            var intervalID = window.setTimeout(function() {
                window.clearTimeout(intervalID);
                document.removeEventListener("backbutton", exitApp, false); // 注销返退出事件
                document.addEventListener("backbutton", myBackbutton, false); // 返回键
            }, 3000);
        }else{
            navigate.app.backHistory();//相当于浏览器的后退
        }
    }

</script>
</head>
<body>
    <div data-role="page" id="indexPage">
        <div data-role="header">
            <h1>PhoneGap实战</h1>
        </div>
        <div data-role="content">
            <a href="#" data-role="button" id="deviceStatus">设备加载中....</a>
            <a href="#" data-role="button" id="deviceCurrentStatus">应用为前台</a>
            <a href="#" data-role="button" id="deviceConectionStatus">连接加载中....</a>
            <a href="#" data-role="button" id="backButtonTouch">返回按钮被按0次</a>
            <a href="#" data-role="button" id="menuButtonTouch">菜单按钮被按0次</a>
            <a href="#" data-role="button" id="batterystatus">电量获取中...</a>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
    </div>
</body>
</html>
时间: 2024-10-10 00:04:36

PhoneGap API 之事件处理_双击返回键退出程序的相关文章

Android应用系列:双击返回键退出程序

前言 有一个很古老的应用技巧,一直被各种大大小小的app用得乐此不疲,那就是双击返回键退出程序.今天就写写它的实现代码,非常简单而且实用. 正文 双击返回键退出程序,一般有两种实现思路,一种是用一个布尔值变量来记录按键事件,并通过线程延时来实现效果:另外一种是直接通过记录按键时间计算时间差实现功能,现在就跟大家分享下代码吧.O(∩_∩)O哈哈~ 1.利用线程延时实现 private static boolean mBackKeyPressed = false;//记录是否有首次按键 @Overr

android之双击返回键退出程序

//onKeyBown方法,用于监听物理键 //参数1:按键码即按下的键 //参数2:按键事件的对象,其中包含了触发事件的详细信息,例如事件的状态.类型.发生的时间等. //返回值:返回ture表示已完整处理事件,不用系统继续处理:返回false相反. public boolean onKeyDown(int keyCode,KeyEvent event) { //判断是否点击返回键 if (keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click();

android双击返回键退出程序的实现

/** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click(); //调用双击退出函数 } return false; } /** * 双击退出函数 */ private static Boolean isExit =

android双击返回键退出程序

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { ExitClick(); } return false; } private static Boolean isExit = false; private void ExitClick() { Timer tExit =

Android 双击返回键退出程序 实现

在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记录按键时间计算时间差实现.现在跟大家分享一下,代码如下,希望对大家有帮助: 第一种:利用线程延时实现: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedT

Android 监听返回键退出程序的两种实现

1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 代码如下: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyC

app点击返回键不退出,双击返回键退出

直接代码 // 按返回键的时候返回上一页面不退出,goBack()表示返回webView的上一页面 public boolean onKeyDown(int keyCoder, KeyEvent event) { if(!webView1.canGoBack() ){ exit(); return false; } if ( keyCoder == KeyEvent.KEYCODE_BACK) { webView1.goBack(); exit(); return false; } else{

WP8.1 双击两次返回键退出程序

在实现Windows Phone上实现点按两次返回键退出程序, 一种方法是使用Coding4Fun提供的ToastPrompt, 使用方法如下: 1. 安装引用, 打开Package Manager Console. 输入下列命令以安装 Coding4Fun.Toolkit.Controls Install-Package Coding4Fun.Toolkit.Controls 输入下列命令以安装 GalaSoft.MvvmLight.Messaging Install-Package Mvvm

Android_按两次返回键退出程序和长按返回键退出程序

以上两个功能主要是参考了一下博客的: http://blog.csdn.net/chenshijun0101/article/details/7682210 http://blog.csdn.net/winlinking/article/details/6596455 方法一: 按两次返回键退出程序: Activity: public class Back2FinishAppActivity extends Activity { Exit exit = new Exit(); /** Calle