先看代码
    @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.

 

---恢复内容结束---

最新文章

  1. 备忘录--关于线程和IO知识
  2. resque 遍历加载job目录下的类
  3. C#常用的加密算法
  4. S5PV210(TQ210)裸机编程
  5. [转载]sql server 等待类型
  6. yii2源码学习笔记
  7. [android]-如何在向服务器发送request时附加已保存的cookie数据
  8. SimpleDateFormat使用和线程安全问题
  9. ES6字符串扩展
  10. YII关联字段并带搜索排序功能
  11. H5——while循环,for循环
  12. WebLogic使用总结(一)——WebLogic安装
  13. 简易OA漫谈之工作流设计(一个Demo),完成6年前的一个贴子
  14. [转]windows中断与共享的连接(samba)
  15. 简单理解 RPC(转载)
  16. php 数组数字 补零
  17. 今天就整一个bug了
  18. 解决VMware安装Ubuntu的过程中窗口过小无法看到按钮的问题
  19. echarts隐藏之后的显示问题
  20. 20155229 2016-2007-2 《Java程序设计》第一周学习总结

热门文章

  1. 简单实现网页另存为word或者excel
  2. 如何将frm格式MYD格式MYI格式文件导入MySQL中
  3. PowerDesigner设置表字段唯一约束
  4. C# 网络编程之webBrowser获取网页url和下载网页中图片
  5. js 正则表验证输入
  6. Esxi 6.0虚拟机迁移Linux遇到网络配置错误
  7. php获取网址
  8. 如何用简单例子讲解 Q - learning 的具体过程?
  9. java enum 用法
  10. Discuz常见小问题-如何取消登陆发帖验证码