WebView加载网页 提示错误 net::ERR_UNKNOWN_URL_SCHEME

      WebView加载一些其它地址的时候,往往会被重定向不是http、https开头,此处以简书为例,如果加载简书的文章url,会被重定向为:jianshu://notes/xxx,原先加载的url:https://www.jianshu.com/p/xxx,导致重写下面方法的出现上面异常
// 该方法已被废弃
@Override
public boolean shouldOverrideUrlLoading(WebView view, String redirectUrl) {
      if (redirectUrl.startsWith("http:") || redirectUrl.startsWith("https:")) {
            view.loadUrl(redirectUrl);
      return true;
      }
      return super.shouldOverrideUrlLoading(view, url);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
      String redirectUrl = request.getUrl().toString();
      if (redirectUrl.startsWith("http:") || redirectUrl.startsWith("https:")) {
            view.loadUrl(redirectUrl);
            return true;
      }
      return super.shouldOverrideUrlLoading(view, request);
}

修复此问题只需要把重定向的操作拦截掉就可以,修复代码,链接开头非http、https的拦截掉

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
      String redirectUrl = request.getUrl().toString();
      if (!redirectUrl.startsWith("http:") || !redirectUrl.startsWith("https:")) {
            return true;
      }
      return super.shouldOverrideUrlLoading(view, request);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何设计一个优雅健壮的Android WebView?(上) 前言 Android应用层的开发有几大模块,其中We...
    JxMY阅读 1,139评论 0 1
  • 在学习WebView的时候就知道了WebView会出现很多稀奇古怪的问题,真碰上的时候还是焦头烂额,很多问题的解决...
    _戏_梦阅读 5,898评论 2 35
  • 现在 Android 应用中都会多多少少嵌入一些 H5 页面,在 Android SDK 中有一个名为 WebVi...
    lijiankun24阅读 966评论 0 1
  • WebView·开车指南 2016-08-31BugDev 北京市东城区首席Bug布道师开山之作,一整月交通事故血...
    53c021c38a1d阅读 848评论 0 1
  • WebView简介 String getUrl():获取当前页面的URL。 reload():重新reload当前...
    QM阅读 3,172评论 0 52