首页 >> 大全

Android中的WebView中加载非Http(s)的URL导致net::ER

2023-10-09 大全 37 作者:考证青年

最近开发遇到中加载一个百度网盘的URL(加载的URL为https开头的),使用的是应用中来加载实现的,就出现了net::ME的错误:如下图:

一、出现的原因

因为只能识别http, https这样的协议,像一些支付宝(://)、微信(://)、去哪儿(://),他们自定义的协议是无法识别的,因此就会出现:ME这样的错误。

一般会“位于:………………的网页无法加载,因为 net:ME”,在这里我们就可以看到无法打开的协议。

Android中的WebView中加载非Http(s)的URL导致net::ER__Android中的WebView中加载非Http(s)的URL导致net::ER

二、解决的方法为

给设置,并重写中的ding方法.

首先我们来了解下ding( view, url)方法,该方法会在加载超链接时回调过来,所以通过重写ding,可以实现对网页中超链接的拦截;返回值为型,是true的时候控制去打开,为false调用系统浏览器或第三方浏览器。默认false

所以,我们可能在有的博文中看到不去重写该方法也可以解决ME这个错误。

这里我们讲下重写ding来解决。

 webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (url == null) return false;try{if(!url.startsWith("http://") && !url.startsWith("https://")){Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));startActivity(intent);return true;}}catch (Exception e){//防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)return true;//没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面}//下面的两种方式选择使用其中一种即可// TODO Auto-generated method stub//1:返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器view.loadUrl(url);return true;//2:或者使用如下的加载方式:return super.shouldOverrideUrlLoading(view, url);}});

3:终极解决方案:

如果上述方法使用不行的话,直接在该界面的原生替换成腾讯定制版的(com..smtt.sdk.)

再次尝试基本可以解决。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了