[转]Cordova Android 返回键拦截(backbutton)和退出(再点击一次跳出)
本文转自:https://blog.csdn.net/aierJun/article/details/53944061
在Android原生webview里重写onBackPressed()就可以。
@Override
public void onBackPressed() {
super.onBackPressed();
}
但在CordovaWebView里已经被cordovawebview处理掉了,重写onBackPressed()没用。
注意:但onBackPressed()方法在最后一个页面会实现,所以要在最后主页面实现点击出现再点击一次退出,在这处理是可以的。
代码如下:
@Override
public void onBackPressed() {
LogUtils.LogUtils(".............onBackPressed...............");
if (webView.canGoBack()){
webView.goBack();
}else {
exit();
}
}
// 定义一个变量,来标识是否退出
private static boolean isExit = false;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
isExit = false;
}
};
private void exit() {
if (!isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), R.string.exit_again,
Toast.LENGTH_SHORT).show();
// 利用handler延迟发送更改状态信息
mHandler.sendEmptyMessageDelayed(0, API.HANDLER_MAIN);
} else {
super.onBackPressed();
ClearCacheUtils.cleanDatabases(MainActivity.this); //暂时可以清楚缓存,当涉及到保存用户账户密码时一定要关闭
finish();
}
}
关于在网页中拦截处理也是可以。
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
// Register the event listener
document.addEventListener("backbutton", onBackKeyDown, false);
}
// Handle the volume up button
//
function onBackKeyDown() {
goback();
cordova.save.save();
}
function goback() {
setTimeout(function () {
history.go(-1);
}, 200);
}
注意:使用了网页的拦截后onBackPressed()方法就彻底不能用了,所以,用了拦截的再点一次退出就在拦截里处理吧
---------------------
作者:Ani_aierJun
来源:CSDN
原文:https://blog.csdn.net/aierJun/article/details/53944061
版权声明:本文为博主原创文章,转载请附上博文链接!
[转]Cordova Android 返回键拦截(backbutton)和退出(再点击一次跳出)的更多相关文章
- js监听手机端点击物理返回键或js监听pc端点击浏览器返回键
之前在项目中遇到一个问题,就是在微信网页上面本来是有返回按钮的,但是大多数人都为了方便,会使用安卓手机自带的物理返回键,这个返回键按下后,就会按照你浏览器的栈存储的路径来一层一层返回,就不执行你页面上 ...
- Html5 监听拦截Android返回键方法详解
浏览器窗口有一个history对象,用来保存浏览历史. 如果当前窗口先后访问了三个网址,那么history对象就包括三项,history.length属性等于3. history对象提供了一系列方法, ...
- vue 定义全局函数,监听android返回键事件
vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...
- quick-cocos2d-x android返回键监听并实现原生退出对话框
这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇. 首先说明一 ...
- cocos2dx之WebView踩过的坑(android返回键处理问题)
最近游戏接入了一个私服平台,由于没有sdk,所以支付相关的操作需要在网页端进行,也就是说点击充值需要在游戏内部弹出一个网页,并定位到平台充值的地址.查阅相关资料后决定使用cocos2dx自带的WebV ...
- ionic监听android返回键(实现“再按一次退出”功能)
在android平台上的app,在主页面时经常会遇到"再按一次退出app"的功能,避免只按一下返回键就退出app提升体验优化. 1.这个功能需要我们用到ionic提供的regist ...
- android 返回键 操作
cocos2dx项目移植到android平台上对于 android手机返回键,主菜单键等键的相关操作,本篇详细对返回键做个简单的介绍说明, 不足不对之处,请同猿们指出. 首先在主activity下,即 ...
- Cocos3.0 的android返回键功能实现
比如:Game.h Game.cpp 头文件Game.h中定义: void onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent) ...
- Android 返回键的处理
多网友不明确怎样在Android平台上捕获Back键的事件.Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台.而回到桌面的尴尬情况,在Android上有两种方法来获取该 ...
随机推荐
- c++中二级指针的使用场景
二级指针的使用场景如下: 1.主要用来为指针变量分配内存空间: void GetMemory(char **p) { *p = ]; } 函数调用方式: char *str = NULL; GetMe ...
- jQuery-爱奇艺图片切换
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 从零起步做到Linux运维经理, 你必须管好的23个细节
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...
- jQuery 购物车
html代码 <!--shoppingCar start--> <table id="TB"> <tr> <td colspa ...
- spring 单元测试方法及其错误整理
spring 单元测试及其错误整理 目录: NO1 spring单元测试方法 - NO1.1 pom.xml文件中确认有下面依赖 - NO1.2 在需要测试的类上,或者新建的测试类上添加注解 - NO ...
- OpenFlow学习笔记
Software-Defined Networking Network intelligence is (logically) centralized in software-based SDN co ...
- 包建强的培训课程(3):App竞品技术分析
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- [转]kaldi基于GMM做分类问题
转自:http://blog.csdn.net/zjm750617105/article/details/55211992 对于每个类别的GMM有几种思路: 第一是将所有训练数据按类别分开,每类的数据 ...
- HotSpot 的垃圾收集器
上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,收集器所处的区域,则表示它是属于新生代还是老年代收集器. 并行(Parallel):指多条垃圾收集器线程并行工 ...
- 第82节:Java中的学生管理系统
第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...