在index.html的监听事件

 1 var flage = true;
 2 window.addEventListener("hashchange", myFunction);
 3   function myFunction() {
 4   //    console.log(location.hash)
 5   //这里根据自己根目录而定
 6     if(location.hash == '#/' || location.hash == '#/login' || location.hash == '#/login/index1'){
 7       flage = false
 8   }else{
 9       flage = true
10   }
11 }

 

 

改变mui.js

 1 wobj.canBack(function(e) {
 2   //by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
 3   //    alert(!!e.canBack)
 4   //本来是e.canBack  改为flage 接收到主页返回的flage,从而判断是连点两次退出应用还是返回历史记录(主要改变这里)
 5   if (flage) { //webview history back
 6     window.history.back();
 7   } else { //webview close or hide
 8     //fixed by fxy 此处不应该用opener判断,因为用户有可能自己close掉当前窗口的opener。这样的话。opener就为空了,导致不能执行close
 9   if (wobj.id === plus.runtime.appid) { //首页
10     //首页不存在opener的情况下,后退实际上应该是退出应用;
11     //首次按键,提示‘再按一次退出应用’
12   if (!$.__back__first) {
13     $.__back__first = new Date().getTime();
14     mui.toast('再按一次退出应用');
15     setTimeout(function() {
16     $.__back__first = null;
17   }, 2000);
18   } else {
19     if (new Date().getTime() - $.__back__first < 2000) {
20       plus.runtime.quit();
21     }
22   }
23 } else { //其他页面,
24   if (wobj.preload) {
25     wobj.hide("auto");
26   } else {
27     //关闭页面时,需要将其打开的所有子页面全部关闭;
28   $.closeAll(wobj);
29     }
30   }
31 }
32 });

 

总结:当页面的路径为'#/', '#/login','#/login/index1'(你想连点两次退出应用的路径)时,监听事件生效!否则返回历史记录!

 

posted on 2017-08-23 17:09  佑之以航  阅读(589)  评论(0编辑  收藏  举报