解決Hbuilder打包的app返回鍵直接退出
問題描述:Hbuilder打包的app如果點選手機返回鍵,app會直接退出,返回不了上一頁。
處理子頁面點選返回鍵直接退出,無法返回,程式碼如下:
//這個不是寫在首頁,寫在子頁面(子頁面才能返回,寫在首頁點選返回就是退出) //不用引入mui.js,都是h5方法 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.js版本,我當時測試的時候引入了,如果不想引入把帶mui的都刪了就可以(或者看下面那個) 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); });
//不需要mui.js版本 document.addEventListener('plusready', function(a) { var first = null; plus.key.addEventListener('backbutton', function() { //首次按鍵,提示‘再按一次退出應用’ if (!first) { first = new Date().getTime(); console.log('再按一次退出應用');//用自定義toast提示最好 setTimeout(function() { first = null; }, 1000); } else { if (new Date().getTime() - first < 1000) { plus.runtime.quit(); } } }, false); }); 完整js程式碼:
//完整版就是,所有頁面都引入這一段程式碼,而上面子頁面和首頁需要分別引入對應程式碼
//需要mui.js版本 <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); }); } }) }); });
//不需要mui.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 //plus.runtime.quit(); //首頁返回鍵處理 //處理邏輯:1秒內,連續兩次按返回鍵,則退出應用; var first = null; plus.key.addEventListener('backbutton', function() { //首次按鍵,提示‘再按一次退出應用’ if (!first) { first = new Date().getTime(); console.log('再按一次退出應用'); setTimeout(function() { first = null; }, 1000); } else { if (new Date().getTime() - first < 1500) { plus.runtime.quit(); } } }, false); } }) }); }); </script> --------------------- 作者:劉白超 來源:CSDN 原文:https://blog.csdn.net/qq_25252769/article/details/76913083 版權宣告:本文為博主原創文章,轉載請附上博文連結!