cordova源码中返回键已经被WebView处理掉了,所以只能在js中处理返回键!
注册事件监听,代表性的调用document.addEventListener,一旦你注册了 deviceready事件。
不再需要调用任何其他方法来覆盖theback-button行为。
代码1:
- document.addEventListener("deviceready", onDeviceReady, false);
- function onDeviceReady() {
- //navigator.splashscreen.hide();
- document.addEventListener("backbutton", onBackKeyDown, false);
- }
- function onBackKeyDown() {
- Toast.showShort('再点击一次退出!');
- document.removeEventListener("backbutton", onBackKeyDown, false); // 注销返回键
- document.addEventListener("backbutton", exitApp, false);//绑定退出事件
- // 3秒后重新注册
- var intervalID = window.setInterval(function() {
- window.clearInterval(intervalID);
- document.removeEventListener("backbutton", exitApp, false); // 注销返回键
- document.addEventListener("backbutton", onBackKeyDown, false); // 返回键
- }, 3000);
- }
- function exitApp(){
- navigator.app.exitApp();
- }
代码2:
- // 等待加载PhoneGap
- document.addEventListener("deviceready", onDeviceReady, false);
- // PhoneGap加载完毕
- function onDeviceReady() {
- //按钮事件
- document.addEventListener("backbutton", eventBackButton, false); //返回键
- document.addEventListener("menubutton", eventMenuButton, false); //菜单键
- document.addEventListener("searchbutton", eventSearchButton, false); //搜索键
- }
- //返回键
- function eventBackButton(){
- //confirm("再点击一次退出!");
- window.plugins.ToastPlugin.show_short('再点击一次退出!');
- document.removeEventListener("backbutton", eventBackButton, false); //注销返回键
- //3秒后重新注册
- var intervalID = window.setInterval(
- function() {
- window.clearInterval(intervalID);
- document.addEventListener("backbutton", eventBackButton, false); //返回键
- },
- 3000
- );
- }
- //菜单键
- function eventMenuButton(){
- window.plugins.ToastPlugin.show_short('点击了 菜单 按钮!');
- }
- //搜索键
- function eventSearchButton(){
- window.plugins.ToastPlugin.show_short('点击了 搜索 按钮!');
- }
都差不多。