Url 中携带参数、编解码、解析参数的问题
服务端拼接参数
douyuapp://h5?url=http%3a%2f%2fdoc.dz11.com%2fddse%2fpreview%2fshare%2f834f082265aa38f3c267%3fsid%3d394%26shareType%3d1%232.8%25E3%2580%2581%2520%25E6%2588%25BF%25E9%2597%25B4%25E5%25B8%25B8%25E7%2594%25A8%25E4%25BF%25A1%25E6%2581%25AF
上面这个url 中,有一个参数 url
注意,服务端返回这个url,必须要进行 urlEncode编码。否则,客户端无法解析。
为什么无法解析?
解析的原理是字符串切割(或者正则匹配),douyuapp://h5?url=xxxx¶ms2=2222 针对这个的解析,就是通过? 解析到host, 通过 & = 解析各个参数
如果某个参数是一个网址,这个网址中包含 & = 等符号,就会影响解析,解决方案就是服务端将 一个url 中的网页地址参数 用urlEncode编码一下
编解码工具
可使用这个在线工具验证 链接
客户端解析
Uri uri = Uri.parse("douyuapp://h5?url=xxxx¶ms2=2222");
String scheme = uri.getScheme();
String url = uri.getQueryParameter("url");