Android WebView使用百度搜索时偶发性会跳转到报错页面,报错(网页无法打开位于baiduboxapp://speec...的网页无法加载,因为net::ERR_UNKNOW_URL_SCHEME)
解决方案
出现该错误的原因是 WebView 尝试加载不支持的 URL 链接 , 目前 WebView 只能支持加载 http 或 https 协议的 URL 地址 ;
当前要加载的地址是 " baiduboxapp://speech/startVoiceSearch?¶ms={“voiceSource”:“home_naver_long”}&jumpTime " 这是百度应用的 URL 地址 ;
出现上述问题 , 通过重写 WebViewClient 的 shouldOverrideUrlLoading 函数 , 获取要加载的 URL 地址 , 如果发现了要加载不支持的 URL 协议地址 ,则启动对应的应用加载该地址 , 如 百度 / 淘宝 / 京东 等应用 ;
解决方案 : 为 WebView 设置 WebViewClient , 重写其中的 shouldOverrideUrlLoading 函数 , 如果 url 链接是 http:// 和 https:// 页面 直接加载 , 如果是其它页面 , 直接调用对应的 app 应用 ;