android返回键webview返回,Android WebView 物理返回键遇到重定向处理
问题出现的场景很常见,比如webview 先加载一个oauth url,成功后重定向到url_b。那个按物理返回键的时候webview会goBack 到过度的oauth url,马上又被重定向到url_b。也就是返回键好像失效了。(当然快速按2次可以解决,可是用户不希望这样)
解决的思路是load(oauth_url)重定向到url_b 的时候先标记isGoBack=true.
在onPageStarted 中的url 是 oauth_url,但是
shouldOverrideUrlLoading中是url_b.
根据两次的不一样可以进行如下处理和标识位复位
1. isGoBack = false;
2. if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
killWebProcess();
}
首先 我们Custom了 WebViewClient
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!TextUtils.isEmpty(startUrl) && !startUrl.equals(url) && isGoBack&&System.currentTimeMillis() - resumeTime<600) {
isGoBack = false;
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
killWebProcess();
}
} else {
view.loadUrl(url, getHeaders(url));
isGoBack = false;
return true;
}
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
startUrl = url;
}
其次处理返回键
boolean isGoBack = false;
private long resumeTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
isGoBack = true;
resumeTime = System.currentTimeMillis();
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
上面的代码中有System.currentTimeMillis() - resumeTime<600 这个是为了干嘛呢?
防止上一次按返回键真的只是一次goBack() !!! 去掉你就会知道问题,遇到了就加上
完整代码在 MVP-Dagger2-Rxjava2中搜索代码类 BaseWebViewActivity
android返回键webview返回,Android WebView 物理返回键遇到重定向处理相关推荐
- Android webView中监听物理返回键一层一层退出
前言 fragment中加载webview如果不处理返回键 那么当你打开多个H5页面的时候 会一次性回退到根级 有时候我们需要一个缓冲 就是一级一级退出 给人一个良好的体验 该怎么做呢? 废话不多说 ...
- uniapp踩坑(五):监听手机物理返回键和滑动返回事件
需求 android端和ios端点击手机物理返回键(左上角的)或页面滑动键退出后,弹出弹框,点击确定后才退出该页面. 截图展示: 实现代码: 在onBackPress()方法中实现. 注意一定要在su ...
- VUE 物理返回键的处理
H5退出时所遇到的问题: 1.按返回键或anroid手机的物理返回键时,都不走destroy方法. 2.按物理返回键,添加popstate监听时, (1)历史记录要准确,否则会执行多次监听方法 (2) ...
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键
本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){ ...
- android物理返回键控制
android物理返回键控制 转载请指明出处 博主版权所有 有些攻城狮做任务需要控制物理返回键 home键 本人观点谷歌屏蔽了home键 网上好多示例代码都没用 在这里示范一下物理返回键的控制吧 关键 ...
- Android 13 返回导航大变更,返回键彻底废弃 + 可预见型返回手势
/ 今日科技快讯 / 据外国媒体报道,马斯克计划裁撤推特约3700个岗位,这占到这家社交媒体公司员工总数的一半,目的是在其440亿美元的收购案之后降低成本.此外,马斯克还打算取消公司现行的远程 ...
- Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势
Android 10 首次引入了全局返回手势,但直到返回触发才能看到目标上层画面.13 针对该特性进行了优化,即返回触发之前可以预览上层画面.同时彻底废弃了返回键相关的 API,这将对现有的 App ...
- 华为 android 菜单键,没有返回和菜单键!华为P10的Home键简单说明
虽然华为顺应了民意,将指纹识别从后面移到了前面.但在我看来,目前华为P10的Home键解决方案还存在两个需要完善的地方. 1.Home键不能按压.可能是受了苹果手机一开始的惯性思维,我们普遍认为目前的 ...
- android dialog返回键不消失,安卓dialog,屏蔽返回键,亲测可用
最近做一个商品选择套餐的功能,需要一个dialog进行翻页,然后按了返回键,dialog全部关闭了,这就很难受了,于是网上搜了一下,也试了很多,都不是想要的效果,突然想到按两下返回键退出app,刚好和 ...
最新文章
- III (十七) haproxy(2)
- SQLServer约束介绍
- Rest Framework
- 八月计算机考试试题,职称计算机考试题库和答案
- excel下拉速度太慢_全靠这些Excel、Word一键录入技巧,我才能用10分钟完成3小时工作...
- 博客主之自我介绍(不长,随便瞅瞅)
- SCAU高级语言程序设计--实验5 循环结构(一)(2)
- html制作钟表盘,CSS3简易表盘时钟
- “红蓝眼人”问题中旅行者说的话的作用
- 网格环境配置 三 安装SGE
- Mars3D(含Cesium)数据及服务篇:城市建筑物转为3DTiles白膜格式
- 全球变暖,为何寒潮这么多?【北极变暖:冷空气有了出口】
- android service是什么,Android service是什么 Android service详解
- Gallery Server Pro ----用于分享相片,视频,音频及其他媒体的ASP.NET相册[Carol]
- 【SP】SubstancePainter安装相关问题
- lorem ipsum_在我们的雷达上:独家电子邮件,PHP数字垃圾和Ipsum
- Citadel——Dusk网络的Zero-Knowledge KYC解决方案
- 仿微信、QQ聊天页面软键盘遮挡聊天对话的解决办法
- 微信浏览器中唤醒APP到指定页
- CSU——2161: 漫漫上学路 最短路