android webview goback 跳过页面302自动跳转方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//判断是否可以返回操作
if (webView.canGoBack() && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
//获取历史列表
WebBackForwardList mWebBackForwardList = webView
.copyBackForwardList();
//判断当前历史列表是否最顶端,其实canGoBack已经判断过
if (mWebBackForwardList.getCurrentIndex() > 0) {
//获取历史列表
String historyUrl = mWebBackForwardList.getItemAtIndex(
mWebBackForwardList.getCurrentIndex() - 1).getUrl();
//按照自己规则检查是否为可跳转地址
//注意:这里可以根据自己逻辑循环判断,拿到可以跳转的那一个然后webView.goBackOrForward(steps)
if (!historyUrl.contains("s.click.taobao.com")) {
//执行跳转逻辑
webView.goBack();
//webView.goBackOrForward(-1)
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
使用webview.copyBackForwardList()来进行判断是否是在当前页打开的链接
本文只适合希望在webview中强制打开新链接在新标签。
使用webview时,可以在WebviewClient类的shouldOverrideUrlLoading方法中获得每次打开的页面,如果希望知道这个页面是否加入了target="_blank"在一个新标签也打开。并没有直接的方法可以知道。那么我们可以获得这个方法的copyBackForwardList值。如果加入了target="_blank"标签,那么这个copyBackForwardList的值一定是0,因为是新标签,没有back可以放回。如果是在当前页面打开,那么这个值肯定是1.因为在当前页是需要具有返回功能的。另外如果在当前页面打开的时候这个地址是多次跳转的地址。那么只有第一的值是1,剩下的地址的这些值也是0,因为第一次获得地址是具有返回功能的,其他在这个地址上的跳转没有有返回功能的。当然如果不进行跳转,只在当前页面打开连接时,这个值会根据你在页面的点击的链接进行的跳转增加,但是如果每次你检测到是当前页面打开,你就强制在新页面打开,那么每次遇到在页面打开时,这个值都只能是1.
---恢复内容结束---
android webview goback 跳过页面302自动跳转方法的更多相关文章
- Android由一个activity 间隔5秒自动跳转到另外一个activity
Android由一个activity 间隔5秒自动跳转到另外一个activity 2013年10月10日18:03:42 //一.写一个定时器 5秒后开启 final Intent lo ...
- JSP页面实现自动跳转!
JSP页面实现自动跳转!一.页面自动刷新: 把如下代码加入<head>区域中<meta http-equiv=”refresh” content=”5″>注:content=” ...
- 12-tinyMCE文本编辑器+图片上传预览+页面倒计时自动跳转
文本编辑器插件:1.将tinymce文件夹全部复制到webContent下2.tinymce/js目录下放 jquery等三个js文件3.语言包:tinymce/js/tinymce/langs目录下 ...
- 黄聪:PHP如何实现延迟一定时间后自动刷新当前页面、自动跳转header("refresh:1;url={$url}");
//1秒后自动跳转 header("refresh:1;url={$url}"); exit; //1秒后自动刷新当前页面header("refresh:1;" ...
- JSP页面实现自动跳转
1 <html><head><script language=javascript> function out(obj) { var i = obj; if ( ...
- python django day 3 页面,自动 跳转,参数传递
zqxt_views/urls.pypath('', calc_views.index, name='home'), calc/views.pydef index(request): return r ...
- PHP跳转页面的几种实现方法详解
•PHP页面跳转一.header()函数header()函数是PHP中进行页面跳转的一种十分简单的方法.header()函数的主要功能是将HTTP协议标头(header)输出到浏览器.header() ...
- 微信小程序:设置页面计时自动跳转
一.功能描述 当出发某一事件后,希望在规定的时间后自动执行另一事件,比如页面跳转功能. 二.代码实现 使用setTimeout函数,单位为毫秒ms setTimeout(function(){ wx. ...
- 实现html页面只自动跳转一次
function show(){ var value= sessionStorage.getItem("flg"); if(value==null || value==undef ...
随机推荐
- [leetcode]Trapping Rain Water @ Python
原题地址:https://oj.leetcode.com/problems/trapping-rain-water/ 题意: Given n non-negative integers represe ...
- Triangle leetcode java
题目: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjace ...
- LigerUI之Grid使用详解(一)——显示数据
目录: 一.概述 二.Grid使用步骤 三.使用Grid展示数据 四.源码下载 一.概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏 ...
- python3 验证码去噪
处理前图像: 处理后图像 代码 #coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy import ...
- 转:CRF++词性标注
CRF++词性标注 2016-02-28 分类:NLP 阅读(5558) 评论(19) 训练和测试的语料都是人民日报98年标注语料,训练和测试比例是10:1,直接通过CRF++标注词性的准确率:0. ...
- VS2008中MFC对话框界面编程Caption中文乱码的解决办法
文章转载自http://blog.csdn.net/ajioy/article/details/6877646 最近在使用VS2008编写一个基于对话框的程序时,在对话框中添加Static控件,编写其 ...
- MATLAB中的集合运算
matlab里关于集合运算和二进制数的运算的函数 intersect:集合交集ismember :是否集合中元素setdiff :集合差集setxor :集合异或(不在交集中的元素)union :两个 ...
- Android 关于操作栏 ActionBar 的设计原则【转载+整理】
原文地址 本文内容 操作栏目的 基本布局 适应旋转和不同的屏幕尺寸 副操作栏的布局 操作栏按钮 上下文操作栏 操作栏清单 设计原则就是为你在编写 Android APP 时,尤其是如何安排操作按钮的位 ...
- ORACLE 执行计划
有关oracle 执行计划几个不错的连接 执行计划的一些概念介绍:http://database.51cto.com/art/200611/34273.htm执行计划的例子:http://www.or ...
- iOS 开发者证书总结 in-house
iOS 证书分两种类型. 第一种为$99美元的,这种账号有个人和公司的区别,公司账号能创建多个子账号,但个人的不能.这种账号可以用来上传app store 第二种为¥299美元的,这种账号只能用于企业 ...