嗯,开工,继续写。。。
extra-data 这个属性方法官方说:
当target="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据
其实,也就是只能获得固定的值,为什么这么说呢,因为我就踩了坑,一个巨大到用了我一下午时间还没整明白的坑。。汗!
我本意是这样的:
使用navigator组件跳转小程序的时候 通过点击事件bindtap='ceshi',把 a和b的值设置到data里的extra中,传值到目标小程序 ,
直接上代码:
wxml:
<navigator target="miniProgram" open-type="navigate" app-id="{{appid}}" path="" version="develop" bindtap='ceshi' extra-data="{{extra}}">打开绑定的小程序</navigator>
js:
data:{
appid:'wx108284235dd9e***',
extra:{
"aa":"0",
"bb":"0"
}
}
ceshi(){
var that = this
var str1 = 'extra.aa'
var str2 = 'extra.bb'
var a = 11111111
var b = 22222222
that.setData({
[str1]:a,
[str2]:b
})
},
本意是非常完美的,结果,尼玛在目标小程序里第一次根本获取不到传进来的值,第二次才能获取到,这是由于跳转和带参数同步进行的,设置值是第二步的事情,所以。。。
目前,我的解决办法就是:
<navigator target="miniProgram" open-type="navigate" app-id="{{item.app_id}}" path="pages/index/index?gmid={{item.id}}&uid={{uid}}&boxid={{boxid}}" version="release">打开绑定的小程序</navigator>
通过path里拼接实现动态传递参数,这样在目标小程序 的query里接受 ,extra-data里穿的参数是在referrerInfo里接受参数。两个接受参数的地方不一样。
OK。先这样。。。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。