请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

开发问题 快应用打开含有参数为 URL 的 deeplink 问题

4
回复
154
查看
[复制链接]

1

主题

4

帖子

25

积分

 楼主| 2020-1-19 18:36:37 显示全部楼层 |阅读模式
快应用目前使用 router.push({ uri: obj.deeplink }) 方法可以打开对应的 deeplink 跳转到相应的 Activity.



但是如果该 deeplink 中的查询参数包含了带有 URL 的 json 字符串,快应用打开对应的 deeplink 就会有问题.


看 ActivityManager 的日志,快应用会解析并重新处理 router.push() 方法传入的 uri,如果恰好遇到了同样带有查询参数的 URL,就会解析错乱.


小伙伴们,是否有其他方法可以跳转到应用.



回复

使用道具 举报

2020-1-20 09:39:58 显示全部楼层
能否把代码po一下
回复

使用道具 举报

1

主题

4

帖子

25

积分

 楼主| 2020-1-20 14:50:25 显示全部楼层

obj.deeplink = "openapp.jdmobile:\/\/virtual?params={\"category\":\"jump\",\"des\":\"m\",\"url\":\"https:\/\/union-click.jd.com\/jdc?e=&p=AyIGZRtaEwUUAlASUhYyFg5XHlwRByJDCkMFSjJLQhBaGR4cDF8QTwcKWUcYB0UHCwYbBVAcXxAdS0IJRmtjX0VSCF5ZD2BoQw1EG1Fyc1Q0Zjl1Dh43VRJfEAoVAFMcUyUCEwZUHlMSARMFZRs1FWwTN1Uea0NsEgZUGlocChUOUitbHAYVA1cTWRYHIgdRHVMRAxEAVhJbFgsiB10fa8G%2FtNLeho%2BKuseM9c7SstSZnFYbXyUyIgRlK2sVMhI3Cl8GSDIQBlQZWQ%3D%3D\",\"keplerID\":\"0\",\"keplerFrom\":\"1\",\"kepler_param\":{\"source\":\"kepler-open\",\"otherData\":{\"mopenbp7\":\"0\"},\"channel\":\"\"},\"union_open\":\"union_cps\"}"

router.push({ uri: obj.deeplink })




比如打开京东的优惠,从 ActivityManager 的日志中,可以看到 deeplink 是错乱的.


2020-01-20 14:49:26.748 1086-9577/system_process I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=openapp.jdmobile://virtual?p=AyIGZRtaEwUUAlASUhYyFg5XHlwRByJDCkMFSjJLQhBaGR4cDF8QTwcKWUcYB0UHCwYbBVAcXxAdS0IJRmtjX0VSCF5ZD2BoQw1EG1Fyc1Q0Zjl1Dh43VRJfEAoVAFMcUyUCEwZUHlMSARMFZRs1FWwTN1Uea0NsEgZUGlocChUOUitbHAYVA1cTWRYHIgdRHVMRAxEAVhJbFgsiB10fa8G/tNLeho+KuseM9c7SstSZnFYbXyUyIgRlK2sVMhI3Cl8GSDIQBlQZWQ==","keplerID":"0","keplerFrom":"1","kepler_param":{"source":"kepler-open","otherData":{"mopenbp7":"0"},"channel":""},"union_open":"union_cps"}&params={"category":"jump","des":"m","url":"https://union-click.jd.com/jdc?e= cmp=com.jingdong.app.mall/.open.InterfaceActivity (has extras)} from uid 10147 on display 0




回复

使用道具 举报

1

主题

4

帖子

25

积分

 楼主| 2020-1-20 14:57:48 显示全部楼层
会吃鱼的猫 发表于 2020-1-20 14:50
obj.deeplink = "openapp.jdmobile:\/\/virtual?params={\"category\":\"jump\",\"des\":\"m\",\"url\":\ ...

router.push 好像会对传入的 uri 进行解析, 将 deeplink 查询参数中的 URL 进行截断并且重新拼接了

感觉像是使用的正则没有考虑查询参数中有 "?" "&" 等特殊字符的原因

回复

使用道具 举报

1

主题

4

帖子

25

积分

 楼主| 2020-2-20 11:52:04 显示全部楼层

官方对这种快应用的 BUG 都没有回复的啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册