转自 http://blog.csdn.net/dyllove98/article/details/8827529 http://hi.baidu.com/519177819/item/3a340f16436cd1d5bf9042bf 先看代码
    @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. android 中webview退出当前页面仍然继续播放的问题
  2. Android WebView自定义处理错误页面显示(404等)
  3. 【Android 应用开发】Android 开发环境下载地址
  4. Android弹窗页面的三种实现方式
  5. Android 让页面回滚到顶端
  6. 【Android Demo】获取指定网页的页面源代码
  7. Android获取本地IP地址
  8. Android HttpUrlConnection 发送Post请求 PHP页面$_POST接收不到

随机推荐

  1. Android: 用Instrumentation类发送鼠标或
  2. android 按钮的四种点击事件
  3. Android之十三图片2D翻转
  4. android学习----ProgressBar 进度条
  5. android 权重的使用
  6. 启动页面
  7. Android(安卓)Jetpack Compose 之 Text
  8. mono android 非UI线程操作UI线程
  9. android webview实现唤起qq临时会话
  10. Android(安卓)如何 隐藏导航栏