解决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();
            }
        })
    });
});

首页点击两次退出程序,代码如下:

 1 //这个写在首页,判断连击两次退出。
 2 //需要引入mui.js版本,我当时测试的时候引入了,如果不想引入把带mui的都删了就可以(或者看下面那个)
 3 mui.plusReady(function() {
 4                 //首页返回键处理
 5                 //处理逻辑:1秒内,连续两次按返回键,则退出应用;
 6                 var first = null;
 7                 plus.key.addEventListener('backbutton', function() {
 8                     //首次按键,提示‘再按一次退出应用’
 9                     if (!first) {
10                         first = new Date().getTime();
11                         mui.toast('再按一次退出应用');
12                         setTimeout(function() {
13                             first = null;
14                         }, 1000);
15                     } else {
16                         if (new Date().getTime() - first < 1000) {
17                             plus.runtime.quit();
18                         }
19                     }
20                 }, false);
21             });
22  
23 //不需要mui.js版本
24 document.addEventListener('plusready', function(a) {
25             var first = null;
26             plus.key.addEventListener('backbutton', function() {
27                     //首次按键,提示‘再按一次退出应用’
28                     if (!first) {
29                         first = new Date().getTime();
30                         console.log('再按一次退出应用');//用自定义toast提示最好
31                         setTimeout(function() {
32                             first = null;
33                         }, 1000);
34                     } else {
35                         if (new Date().getTime() - first < 1000) {
36                             plus.runtime.quit();
37                         }
38                     }
39                 }, false);
40         });

完整js代码:

 1 //完整版就是,所有页面都引入这一段代码,而上面子页面和首页需要分别引入对应代码
 2  
 3 //需要mui.js版本
 4 <script>
 5 document.addEventListener('plusready', function() {
 6         var webview = plus.webview.currentWebview();
 7         plus.key.addEventListener('backbutton', function() {
 8             webview.canBack(function(e) {
 9                 if(e.canBack) {
10                     webview.back();             
11                 } else {
12                     //webview.close(); //hide,quit
13                     //plus.runtime.quit();
14                     mui.plusReady(function() {
15                         //首页返回键处理
16                         //处理逻辑:1秒内,连续两次按返回键,则退出应用;
17                         var first = null;
18                         plus.key.addEventListener('backbutton', function() {
19                             //首次按键,提示‘再按一次退出应用’
20                             if (!first) {
21                                 first = new Date().getTime();
22                                 mui.toast('再按一次退出应用');
23                                 setTimeout(function() {
24                                     first = null;
25                                 }, 1000);
26                             } else {
27                                 if (new Date().getTime() - first < 1500) {
28                                     plus.runtime.quit();
29                                 }
30                             }
31                         }, false);
32                     });
33                 }
34             })
35         });
36     });
37  
38 //不需要mui.js版本
39 document.addEventListener('plusready', function() {
40         var webview = plus.webview.currentWebview();
41         plus.key.addEventListener('backbutton', function() {
42             webview.canBack(function(e) {
43                 if(e.canBack) {
44                     webview.back();             
45                 } else {
46                     //webview.close(); //hide,quit
47                     //plus.runtime.quit();
48                     //首页返回键处理
49                     //处理逻辑:1秒内,连续两次按返回键,则退出应用;
50                     var first = null;
51                     plus.key.addEventListener('backbutton', function() {
52                         //首次按键,提示‘再按一次退出应用’
53                         if (!first) {
54                             first = new Date().getTime();
55                             console.log('再按一次退出应用');
56                             setTimeout(function() {
57                                 first = null;
58                             }, 1000);
59                         } else {
60                             if (new Date().getTime() - first < 1500) {
61                                 plus.runtime.quit();
62                             }
63                         }
64                     }, false);
65                 }
66             })
67         });
68     });
69 </script>

猜你喜欢

转载自www.cnblogs.com/Strangers/p/11927990.html