1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>jQuery Mobile Web 应用程序</title>
  6. <link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
  7. <script src="../jquery.js" type="text/javascript"></script>
  8.  
  9. <script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
  10. <script src="../cordova.js" type="text/javascript"></script>
  11. <script type="text/javascript">
  12.  
  13. //使用jQuery mobile设置提示框的信息
  14. function showMyAlert(text) {
  15. $.mobile.loadingMessageTextVisible = true;
  16. $.mobile.showPageLoadingMsg("a", text, true);
  17. }
  18.  
  19. //弹出提示框信息的方法,两秒后隐藏
  20. function myAlert(text) {
  21. showMyAlert(text);
  22. setTimeout(hideLoading, 2000);
  23. }
  24.  
  25. //隐藏提示框的方法
  26. function hideLoading() {
  27. $.mobile.hidePageLoadingMsg();
  28. }
  29. //退出app
  30. function exitApp() {
  31. navigator.app.exitApp();
  32. }
  33. </script>
  34. <script type="text/javascript">
  35. $(function(){
  36. document.addEventListener('deviceready',myDeviceready,false);
  37. })
  38.  
  39. function myDeviceready(){
  40. console.log('设备加载完成');
  41.  
  42. document.addEventListener('backbutton',myBackbutton,false);
  43. }
  44.  
  45. //点击返回按钮的事件
  46. function myBackbutton(){
  47. //下面的if判断页面是否是id为indexPage的页面如果是才执行,否则执行else的返回上一页
  48. if ($.mobile.activePage.is('#indexPage')) {
  49. myAlert('再点击一次退出!');
  50. document.removeEventListener("backbutton", myBackbutton, false); // 注销返回键
  51. document.addEventListener("backbutton", exitApp, false);// 通过监听返回键绑定退出事件
  52. // 3秒后重新注册
  53. var intervalID = window.setTimeout(function() {
  54. window.clearTimeout(intervalID);
  55. document.removeEventListener("backbutton", exitApp, false); // 注销返退出事件
  56. document.addEventListener("backbutton", myBackbutton, false); // 返回键
  57. }, 3000);
  58. }else{
  59. navigate.app.backHistory();//相当于浏览器的后退
  60. }
  61. }
  62.  
  63. </script>
  64. </head>
  65. <body>
  66. <div data-role="page" id="indexPage">
  67. <div data-role="header">
  68. <h1>PhoneGap实战</h1>
  69. </div>
  70. <div data-role="content">
  71. <a href="#" data-role="button" id="deviceStatus">设备加载中....</a>
  72. <a href="#" data-role="button" id="deviceCurrentStatus">应用为前台</a>
  73. <a href="#" data-role="button" id="deviceConectionStatus">连接加载中....</a>
  74. <a href="#" data-role="button" id="backButtonTouch">返回按钮被按0次</a>
  75. <a href="#" data-role="button" id="menuButtonTouch">菜单按钮被按0次</a>
  76. <a href="#" data-role="button" id="batterystatus">电量获取中...</a>
  77. </div>
  78. <div data-role="footer">
  79. <h4>&nbsp;</h4>
  80. </div>
  81. </div>
  82. </body>
  83. </html>

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

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

    前言 有一个很古老的应用技巧,一直被各种大大小小的app用得乐此不疲,那就是双击返回键退出程序.今天就写写它的实现代码,非常简单而且实用. 正文 双击返回键退出程序,一般有两种实现思路,一种是用一个布 ...

  2. android双击返回键退出程序

    今天给大家简单说一下,android双击返回键退出程序. @Override public boolean onKeyDown(int keyCode, KeyEvent event) {      ...

  3. WP8.1应用双击返回键退出程序。

    #region 双击退出程序代码 //双击HardwareButtons.BackPressed: //出现退出提示窗口: //“确定”退出,“取消”返回什么也不做: private async vo ...

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

    /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-gen ...

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

    1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定 ...

  6. ionic 实现双击返回键退出应用功能

    ionic 实现双击返回键退出应用功能 keywords cordova,ngcordova,phonegap,ionic,双击,返回键,退出 例子 准备Toast插件,提示用,用户体验好点,不是必须 ...

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

    在实现Windows Phone上实现点按两次返回键退出程序, 一种方法是使用Coding4Fun提供的ToastPrompt, 使用方法如下: 1. 安装引用, 打开Package Manager ...

  8. Android中的“再按一次返回键退出程序”实现

    用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dial ...

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

    以上两个功能主要是参考了一下博客的: http://blog.csdn.net/chenshijun0101/article/details/7682210 http://blog.csdn.net/ ...

随机推荐

  1. js的一些妙用

    在一个数组上  直接附加上另一个数组: Array.prototype.push.apply(array1, array2); 将对象转换成一个数组: Array.prototype.slice.ca ...

  2. 编译android源码遇到错误及其解决方法

    升级ubuntu的14.04后,android的源码又编译错误了,一下是错误说明赫解决方法: 1.make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_ ...

  3. this说明

    这个This就表示当前实例的对象,用this可访问属性,this.Fist:

  4. Spring.Net---1、IOC第一个实例

    Spring.NET IoC容器的用法. 通过简单的例子学习Spring.Net 1.先创建一个控制台程序项目. 2.添加IUserInfoDal 接口. namespace Spring.Net { ...

  5. jquery的事件绑定on()动态绑定

    常用 这里有个文章列表, 通过on() 点击标题获取标题内容 <div class="article"> <div class="title" ...

  6. 阿里java面试题,你能答对多少?

    答对以下这些面试题,可以淘汰掉 80 % 的求职竞争者. 1.hashcode相等两个类一定相等吗?equals呢?相反呢? 2.介绍一下集合框架? 3.hashmap hastable 底层实现什么 ...

  7. jenkins在Linux 下安装部署

      这里介绍两种方法,一种方法将最新版jenkins加入到yum源,另外一种是下载指定版本的rpm包 系统centos6 自带jdk1.7 一 安装jenkins wget -O :下载并以不同的文件 ...

  8. jdk锁相关

    锁类型 可重入锁:在执行对象中所有同步方法不用再次获得锁 可中断锁:在等待获取锁过程中可中断 公平锁: 按等待获取锁的线程的等待时间进行获取,等待时间长的具有优先获取锁权利 读写锁:对资源读取和写入的 ...

  9. luogu P2801 教主的魔法

    题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是 ...

  10. iView定制主题报错问题的解决方法

    按照iView官网来是这样的: 1. 在main.js当前目录下新建themes文件夹,里面新建一个叫blue.less的文件 2. 在mian.js里面引入blue.less文件 3. blue.l ...