一、首先在两个小程序的app.json文件里面配置另一个小程序的appid:
navigateToMiniProgramAppIdList,两个小程序都要配置!!!
{
"pages": [
"pages/index/index",
],
"window": {
"backgroundTextStyle": "light",
},
"sitemapLocation": "sitemap.json",
"navigateToMiniProgramAppIdList": [
"appid",//要跳转的小程序的id
]
}
二、设置跳转:
1、使用navigator标签:
<navigator class="red"
app-id="跳转目标小程序的appid"
path="跳转目标小程序的哪一页?拼接参数"
bindsuccess="成功回调"
bindfail="失败回调"
bindcomplete="跳转完成回调"
version="跳转到哪个版本"
target="miniProgram"
open-type="navigate"
extra-data="{拼接参数}">
跳转
</navigator>
<navigator class="red"
app-id="appid"
path="/pages/index/index?a=1"
bindsuccess="to_mini"
version="develop"
target="miniProgram"
open-type="navigate"
extra-data="{{message}}">
跳转
</navigator>
//data中message={a:123}
2、使用wx.navigateToMiniProgram:
wx.navigateToMiniProgram({
appId: '目标小程序id',
path: '/pages/index/index?a=1',//跳转目标页面+携带参数
extraData: {
a: '123'//携带参数
},
envVersion: 'develop',
success(res) {
// 打开成功
}
})
三、接收传参:
在另一个小程序B里要接收上面的path="/pages/index/index?a=1" 中的a=1和extra-data中的message这个对象,接收方式如下:
1、a=1,在pages/index/index这个页面的onload的options里面即可获取,获取方式options.a;
2、message对象获取需要在小程序B的app.js的onshow或者onlaunch函数里面获取:
//app.js
App({
onLaunch: function (e) {
// console.log(e,'app.js.onLaunch')
},
onShow:function(e){
console.log(e,'app.js.show')
}
})
手机二维码预览小程序A,点击跳转到小程序B,调试模式下打印的app.js里的onshow里的值如下:
获取a的值为: var a=options.referrerInfo.extraData.a;