小程序跳转小程序之间的数据传输

3,172 阅读1分钟

实例:【小程序A】跳转至【小程序B】再跳回【小程序A】

【小程序A】触发跳转 wx.navigateToMiniProgram

### 【小程序A】触发跳转的页面
toMiniProgramB() {
    wx.navigateToMiniProgram({ 
        // 目标【小程序B】的AppId
        appId: 'wxd65aed3773b31234', 
        // 目标【小程序B】的页面
        path: 'pages/home/home', 
        // 需要传递给目标【小程序B】的数据
        extraData: {
          from:'我来自小程序A',
        },
        // 要打开的目标【小程序B】对应的版本;release: 正式版、develop:开发版、trial:体验版
        envVersion: 'release',
        success(res) {
            // 跳转成功的的回调函数
        },
        fail(err) {
            // 跳转失败的回调函数
        },
        complete(res) {
            // 跳转接受的回调函数
        }
    })
}

【小程序A】配置navigateToMiniProgramAppIdList

### 【小程序A】app.json
// 需要跳转的小程序列表
navigateToMiniProgramAppIdList: [
  'wxd65aed3773b31234',
],

【小程序B】 App.onLaunchApp.onShow 中获取到这份数据

### 【小程序B】app.js
onShow(options) {
    if( options.referrerInfo.extraData ){
        let extraData = options.referrerInfo.extraData
        console.log(extraData.from) //'我来自小程序A'
    }
}

【小程序B】跳回【小程序A】wx.navigateBackMiniProgram

backMiniProgramA() {
    wx.navigateBackMiniProgram({ 
        extraData: {
          backFrom:'从小程序B返回',
        },
        success(res) {
            // 跳转成功的的回调函数
        },
        fail(err) {
            // 跳转失败的回调函数
        },
        complete(res) {
            // 跳转接受的回调函数
        }
    })
}

【小程序A】 获取返回数据

### 【小程序A】app.js
onShow(options) {
    if( options.referrerInfo.extraData ){
        let extraData = options.referrerInfo.extraData
        console.log(extraData.backFrom) //'从小程序B返回'
    }
}

** 每个小程序可跳转的其他小程序数量限制为不超过 10 个**

微信官方文档地址

打开另一个小程序wx.navigateToMiniProgram

返回到上一个小程序wx.navigateBackMiniProgram

配置navigateToMiniProgramAppIdList