解决webview出现错误net::err_unknown_url_scheme 的问题

本文介绍了webview在加载过程中遇到net::ERR_UNKNOWN_URL_SCHEME错误的原因,主要是由于尝试加载非http或https的自定义协议。解决方法是重写WebviewClient的shouldOverrideUrlLoading方法,对可能重定向的URL和非http/https协议的URL进行拦截处理。通过判断HitTestResult的类型和extra信息,以及URL的协议头,可以有效防止此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产生原因webview重定向,其定义没有明确的官方解释,发生的原因是请求的链接(url)在加载完成后发生了变化 (eg.比如你的代码中设置webview加载的是网页A,打开后发现加载的是网页B); 关于 net::ERR_UNKNOWN_URL_SCHEME (如下图所示),因为webview只能识别http和https协议,遇到图中这种"wvhzpj://"开头的自定义协议时就无法识别,便会提示ERR_UNKNOWN_URL_SCHEME这样的错误。

解决方法:重写WebviewClient类中的 shouldOverriderUrlLoading 方法( 选取方法参数为(Webview view , String url )的那种,如下图),该方法可以对webview将要加载的url 进行处理,我们在此处对 会发生重定向的 url 和 不以 "http://"、"https//" 开头的自定义协议 进行拦截处理。该方法的返回值为bool

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值