问题描述:Hbuilder打包的app如果点击手机返回键,app会直接退出,返回不了上一页。

写在公共js文件中,每个页面均引入该js,代码如下:

document.addEventListener('plusready', function() {
var webview = plus.webview.currentWebview();
plus.key.addEventListener('backbutton', function() {
webview.canBack(function(e) {
if(e.canBack) {
webview.back();
} else {
webview.close(); //hide,quit按手机返回键直接退出APP
//plus.runtime.quit();
}
})
});
});
上面的一段代码即可实现按手机返回键时返回上一页,当返回到首页,再按手机返回键即可退出APP,下面的代码可以不要


点击手机返回键两次提示退出程序,代码如下:

注: 在hbuilder中新建移动App时,选择模板-mui项目,在页面中引入mui.js以及mui.min.js,点击两次退出程序效果才会实现
mui.plusReady(function() {
//首页返回键处理
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
plus.key.addEventListener('backbutton', function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
plus.runtime.quit();
}
}
}, false);
});

按手机返回键返回上一页 + 点击手机返回键两次提示退出程序效果,完整js代码:

注:此段代码当在首页,按手机返回键时无效果,不会退出APP,要点击两次才行

<script>
document.addEventListener('plusready', function() {
var webview = plus.webview.currentWebview();
plus.key.addEventListener('backbutton', function() {
webview.canBack(function(e) {
if(e.canBack) {
webview.back();
} else {
//webview.close(); //hide,quit
//plus.runtime.quit();
mui.plusReady(function() {
//首页返回键处理
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
plus.key.addEventListener('backbutton', function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1500) {
plus.runtime.quit();
}
}
}, false);
});
}
})
});
});
</script>
 

最新文章

  1. IOS开发基础知识--碎片46
  2. Java方法
  3. .net 高效管理稀缺资源(数据库资源,文件资源等)
  4. 第六十九篇、OC_录制语音和播放语音功能的实现
  5. Android入门:用HttpClient模拟HTTP的GET和POST请求
  6. Ubuntu 14.04 LAMP搭建小记
  7. 使用VisualStudio2010创建C#应用程序
  8. php 设置字符集为utf-8
  9. D - 二叉树遍历(推荐)
  10. poj3259(spfa判负环)
  11. Func和Action的用法区别
  12. EM 期望最大化算法
  13. tomcat 和 jboss access log 日志输出详解
  14. 《Effective Modern C++》翻译--条款2: 理解auto自己主动类型推导
  15. Win7 vs2017 WDK 1803 1809 驱动开发 出错 KMDF
  16. 开源数据同步神器——canal
  17. 洛谷 P1571 眼红的Medusa【二分查找】 || 【map】
  18. SSH异常处理(一)
  19. 华中农业大学第五届程序设计大赛网络同步赛-A
  20. Python 如何引入自定义模块

热门文章

  1. linux命令日志处理
  2. question?
  3. Python实践练习:电话号码和 E-mail 地址提取程序
  4. C命令行参数
  5. MySQL 复合索引
  6. Spark-Mllib中各分类算法的java实现(简易教程)
  7. DDA算法
  8. 【CodeForces148D】Bag of mice
  9. js使用浏览器的另存为下载文件
  10. android用户登录验证