Skip to content

从“小程序A”跳转到“小程序B”并进行参数传递

提示

主要通过 wx.navigateToMiniProgram 接口实现。

小程序 A:发送参数

在调用跳转接口时,通过 path 属性在路径后拼接查询字符串(Query String),或者使用 extraData 对象。

js
// 小程序 A 的代码
wx.navigateToMiniProgram({
  appId: '小程序B的AppID',
  path: 'pages/index/index?id=123&type=share', // 在路径后拼接参数
  extraData: {
    foo: 'bar', // 也可以通过 extraData 传递对象
  },
  envVersion: 'release', // develop, trial, release
  success(res) {
    // 打开成功
  },
})

小程序 B:接收参数

获取路径参数(path)

在目标页面的 onLoad 生命周期中获取。

js
// 小程序 B 的 pages/index/index.js
export default {
  setup(props) {
    // 在 Composition API 中,通常通过路由钩子或 onLoad 接收
  },
  onLoad(options) {
    console.log(options.id) // 输出: 123
    console.log(options.type) // 输出: share
  },
}

获取 extraData 参数

extraData 属于 App 级别的数据,需要在 App.onLaunchApp.onShow 中获取。

js
// 小程序 B 的 app.js
App({
  onLaunch(options) {
    // referrerInfo 包含来源信息
    if (options.referrerInfo && options.referrerInfo.extraData) {
      console.log(options.referrerInfo.extraData.foo) // 输出: bar
    }
  },
  onShow(options) {
    // 建议在 onShow 中也做逻辑处理,因为小程序热启动时不会触发 onLaunch
    if (options.referrerInfo && options.referrerInfo.extraData) {
      console.log(options.referrerInfo.extraData.foo)
    }
  },
})

基于 MIT 许可发布