一、首先在兩個小程序的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;