phonegap监听backbutton点击事件后,其他页面点击回退键出现无反应现象
来源:互联网 发布:淘宝直播用什么摄像头 编辑:程序博客网 时间:2024/04/20 04:48
phonegap版本:4.2.0
问题描述:
比如我们有三个页面,分别是main.html,page1.html,page2.html。我们有这样的需求:当在main.html页面点击回退键时要退出程序(默认是返回上一页),在page1.html或者page2.html上点回退键依然是返回上一页。自然而然,我们想到的是在main.html页面加上回退键监听事件,捕捉到后退出程序。于是我在main.html页面加上了下面的代码
document.addEventListener("backbutton", onBackKeyDown, false);var shouldExit = false;function onBackKeyDown() { if (shouldExit) { navigator.app.exitApp(); } else { shouldExit = true; window.plugins.toast.showShortBottom('再点击一次退出程序!', function(){}, function(){}); setInterval(function(){ shouldExit = false; }, 3000); }}
在main.html页面测试,点击两次返回键退出程序,没问题。
但是,但是。。。我从main.html点击链接跳到page1.html或者page2.html后,再点击回退键竟然回不去了,也就是点击回退键在除了main.html这个页面以外都没反应了!
后来看了下phonegap的代码,发现是这样:
第一次绑定backbutton的监听函数后,cordova.js就会通知app,backbutton事件被重写了,所以不管载入什么页面app默认的backbutton事件都不会触发了,要通过cordova.js告诉app解除backbutton重写。
解决办法:
查了很多资料发现没有很好的解决办法,最后我的解决方法就是在每个页面都载入cordova.js,然后在cordova.js的初始化方法里先解除backbutton事件的重写,这样在没有监听backbutton事件的页面,点击回退键依然会触发默认事件(返回上一页)
大家如果有更好的方法,也欢迎探讨。个人邮箱towardsyoung@sina.com
0 0
- phonegap监听backbutton点击事件后,其他页面点击回退键出现无反应现象
- Android ListView点击事件无反应
- button点击无反应
- 点击button无反应
- ListView 嵌套 GridView 点击事件无反应问题
- Android的通知栏点击后无反应解决办法
- ViewPager子页面的点击事件监听
- 解决ie点击无反应
- andorid,listview点击无反应
- 部署按钮点击无反应
- WKWebView 点击链接无反应
- IDE intellij报错(点击File—setting页面无反应并且出现IDE error occored)
- ionic2点击事件反应慢
- 多次点击事件监听
- PopupWindow点击监听事件
- 监听radio点击事件
- 监听按钮点击事件
- 设置点击监听事件
- forward和recondirect的区别
- 将VC++中的字体输出为竖直方向显示
- [SQL-码农]免安装数据库调查
- Java之多线程断点下载的实现
- LightOJ 1245 - Harmonic Number (II)(基础数论)
- phonegap监听backbutton点击事件后,其他页面点击回退键出现无反应现象
- 黑马程序员---c语言 数组和字符串
- delete APK and make OTA package
- Nginx配置SSL并强制http跳转到https
- ios推送
- bzoj3223文艺平衡树 原tyvj题目
- ganglia简介以及工作原理和配置
- Android开发笔记--电话拔号器
- Android 网络编程