兩個小程序之前相互跳轉並傳值

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章