找回密码
 立即注册
搜索

使用router携参跳转其他快应用,参数不完整怎么解决?

1
回复
697
查看
[复制链接]

12

主题

16

帖子

140

积分

 楼主| 2021-5-18 10:23:05 显示全部楼层 |阅读模式

在华为快应用,使用hap链接的方式,从快应用携参跳转到另一个快应用,参数总是不完整,这个要怎么解决?

回复

使用道具 举报

23

主题

142

帖子

825

积分

2021-5-18 10:31:13 显示全部楼层

问题分析

对router.push接口跳转的代码进行分析。

快应用A使用router.push接口跳转快应用B的Hello页面时,并携带参数srcurl,该接口的参数uri使用的是快应用deeplink的hap链接格式:

hap://app/<package>/[path][?key=value&]

跳转代码中srcurl对应hap格式中的key,而它的value值是一个H5地址,但H5地址中又携带了&quality=80&size=b9999_10000&sec=1571113692640等参数,快应用引擎会认为后面的&参数都是hap链接中的参数,而不是H5中的,所以导致H5地址中的参数被截断了。

解决方法

快应用的router.push接口格式是支持携带参数的,其格式为:

router.push({uri: 'hap链接', params: { key:’value '}});

可以把hap链接里的参数放到params中。

快应用A修改后代码如下:

router.push({                uri: "hap://app/com.huawei.text/Hello",                params: {                    srcurl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1571113692640&di=9ed87b0302d9b8ce9ca66f6ab7e18394&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D2161827460%2C376403171%26fm%3D214%26gp%3D0.jpg'                }           })

快应用B获取效果如下:

参考案例:https://developer.huawei.com/consumer/cn/doc/development/quickApp-Guides/quickapp-case#h1-1611817746960

回复

使用道具 举报

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