问题描述: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>