1. 程式人生 > >解決Hbuilder打包的app返回鍵直接退出

解決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  版權宣告:本文為博主原創文章,轉載請附上博文連結!