Android中的Webview加载URL支持其他协议Protocols

关于URL Scheme的基本原理,这里不多说了,简单介绍一下使用到的scheme参数格式,比如启动天猫客户端的url scheme格式:

tmall://tmallclient/?{"action":”item:id=xxxxx”}
其中xxxxx是商品的id。

比如:某个天猫商品的http链接为:http://detail.tmall.com/item.htm?spm=a215v.7217581.610138.10.sO6nZp&id=36615660686&areaId=410100&cat_id=2&rn=ebe1860b08257aacbac424ed12d5208c&user_id=1098342976&is_b=1

从中抽取”id=“后面的11位数字,此为商品ID,然后,通过下面的URL启动天猫客户端:
tmall://tmallclient/?{"action":”item:id=36615660686”}

先说一下需求,我们这个项目是和天猫合作的,天猫返回的url就是tmall://开头的,我要用webview加载这个url,但是这个不是合法的url,用webview加载会显示404,跟踪了一下,进入到了WebViewClient的onReceivedError方法中了,所以加载不出来正确的url。解决方法就是覆盖shouldOverrideUrlLoading方法,直接返回true就可以了,代码如下:

public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url != null && url.startsWith("tmall://")) {
            return true;
    } else {
        return false;
    }
}

stackoverflow:http://stackoverflow.com/questions/3583264/support-for-other-protocols-in-android-webview

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值