js实现对Android设备物理返回键单击/双击事件处理(Framework7框架)

单击事件:

[javascript]  view plain  copy
  1. //设备返回键  
  2. document.addEventListener(“backbutton”, onBackKeyDown, false);  
[javascript]  view plain  copy
  1. function onBackKeyDown() {  
  2. // 获取当前view  
  3. var currentView=myApp.getCurrentView();  
  4. if(currentView.history.length>1)  
  5. {  
  6. currentView.router.back({});//非首页返回上一级  
  7. }  
  8. else{  
  9. navigator.app.exitApp();//首页点返回键退出应用  
  10. }  
  11. }  

实现效果为,当前页面为首页时直接退出应用,不是首页时返回上一级。


双击事件:
[javascript]  view plain  copy
  1. var app = new Framework7();  
  2. var toast = app.toast('连续点击退出应用程序''', {});  
  3. toast.show(true);  
  4. document.removeEventListener("backbutton", eventBackButton, false); //注销返回键  
  5. //1秒后重新注册  
  6. var intervalID = window.setInterval(  
  7.     function() {  
  8.        window.clearInterval(intervalID);  
  9.        document.addEventListener("backbutton", eventBackButton, false); //返回键  
  10.     },  
  11.     1000  
  12. );  

实现效果为,点击物理返回键时toast提示“连续点击退出应用程序”,1秒内再次点击即退出。上面用到了toast,可以参看我的另外一篇博客js实现安卓toast效果(Framework7框架)


以下代码实现的效果为,首页时点击物理返回键提示“连续点击退出应用程序”,1秒内再次点击退出应用程序;非首页时点击物理返回键返回上一页面。

[javascript]  view plain  copy
  1. var currentView=myApp.getCurrentView();  
  2. if(currentView.history.length>1)  
  3. {  
  4.     currentView.router.back({});//返回上一级  
  5. }else{  
  6.     var app = new Framework7();  
  7.     var toast = app.toast('连续点击退出应用程序''', {});  
  8.     toast.show(true);  
  9.     document.removeEventListener("backbutton", eventBackButton, false); //注销返回键  
  10.     //1秒后重新注册  
  11.     var intervalID = window.setInterval(  
  12.         function() {  
  13.            window.clearInterval(intervalID);  
  14.            document.addEventListener("backbutton", eventBackButton, false); //返回键  
  15.         },  
  16.         1000  
  17.     );  
  18. }  

猜你喜欢

转载自blog.csdn.net/xiaoxiaoluckylucky/article/details/79374108