主题
从“小程序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.onLaunch 或 App.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)
}
},
})