两个小程序之前相互跳转并传值

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

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