問題描述: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>