android webview getusermedia,android webview重定向 返回按钮死循环问题修改

当HTML有重定向的时候,回退时会不断往跳转进入死循环。尝试修改webview缓存加载策略以后,不起作用。在网上查阅资料以后,跟

shouldOverrideUrlLoading的返回值为true还是false有关系。可是什么时候才返回true,什么时候返回false呢?

参考http://blog.csdn.net/pimian13611397598/article/details/54973108网页。不过原理不是很懂

你们有试过加载WebView由于H5 CSS样式中有特殊属性“minimal-ui”无法识别加载不出来的情况么,你们有过在解决完一个问题之后又出来内外一个问题的时候么,

你们有给别人找到了BUG,完了自己要去给别人填坑的时候么,你有的,你肯定有的......

今天这个问题可以说是一个低级的问题,就是webView返回控制的时候无法回退

上模型:

webView.loadUrl(A);

A是一个可变的域名,可变的域名,可变的域名,重要的事情说三遍

Eg: A="www.baidu.com"

加载之后重定向为:

A="www.baidu_1.com"

那么问题来了,就是域名变了么,如果是这么容易我还在这儿废话,麻蛋,百度的一个解决方案,一个现成的模板,然后运营妹纸直接拿来用的,没源码,你懂得,加载的时候不是必现的,

偶尔会重定向,偶尔不会,我就xxxx,各种调试,

最后解决方案:

WebView.HitTestResult hitTestResult = view.getHitTestResult();

WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的链接的类型,返回一个extra的信息,如果打开链接不是一个url,或者打开的链接是JavaScript的url,

他的类型是UNKNOWN_TYPE,这个url就会通过requestFocusNodeHref(Message)异步重定向。返回的extra为null,或者没有返回extra。根据此方法的返回值,判断是否为null,

可以用于解决网页重定向问题。

一句话返回为null就加载链接,否则该干嘛干嘛

webview.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

new GetTitleAsync().execute(url);

WebView.HitTestResult hitTestResult = view.getHitTestResult();

// hitTestResult==null解决重定向问题

if (!TextUtils.isEmpty(url) && hitTestResult == null) {

view.loadUrl(url);

return true;

}

// WebBackForwardList mWebBackForwardList = webview.copyBackForwardList();//获取栈内存在的URL

// for (int i = 0, p = mWebBackForwardList.getSize(); i < p; i++) {

// Log.e("====", "" + mWebBackForwardList.getItemAtIndex(i).getUrl());

// }

return super.shouldOverrideUrlLoading(view, url);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值