|
访客您好,登录后可看更多精彩内容!发帖、回复积分还可换实物奖品哦,还在犹豫什么,赶紧注册登录吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
近期在开发一个与淘宝相关的app的时候遇到:net::ERR_UNKNOWN_URL_SCHEME 错误。
查看网上的解决方案大部分都无法解决,经过不断测试不断修改,把以下代码加到项目中完美解决。
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if(url == null) return false;</P>
- try {
- if(url.startsWith("weixin://") //微信
- || url.startsWith("alipays://") //支付宝
- || url.startsWith("mailto://") //邮件
- || url.startsWith("tel://")//电话
- || url.startsWith("dianping://")//大众点评
- || url.startsWith("tbopen://")//淘宝
- || url.startsWith("mqqwpa://")//QQ
- //其他自定义的scheme
- ) {
- 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,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面
- }</P>
- view.loadUrl(url);
- return true;
- }
复制代码 出现这个问题的原因是,webview只能解析http和https的网址,其他scheme网址无法解析。所以我们要添加这些个性的scheme网址。
|
|