微信小程序跳转传参方式
在微信小程序中使用 uni.navigateToMiniProgram
跳转到另一个小程序时,可以通过两种方式传递参数:
1. 通过 path 传参
uni.navigateToMiniProgram({
appId: item.AppId,
envVersion: "release",
path: 'pages/targetPage/targetPage?key1=value1&key2=value2', // 通过path传参
success: function (res) {
console.log("跳转外部小程序成功", res.errMsg)
}
})
目标小程序可以通过页面 onLoad 方法获取这些参数:
onLoad: function(options) {
console.log(options.key1); // 输出 value1
console.log(options.key2); // 输出 value2
}
2. 通过 extraData 传参
uni.navigateToMiniProgram({
appId: item.AppId,
envVersion: "release",
extraData: { // 通过extraData传参
foo: 'bar',
key: 'value'
},
success: function (res) {
console.log("跳转外部小程序成功", res.errMsg)
}
})
目标小程序需要在 App.onLaunch 或 App.onShow 中接收这些参数:
App({
onLaunch: function(options) {
console.log(options.referrerInfo.extraData.foo); // 输出 'bar'
},
onShow: function(options) {
console.log(options.referrerInfo.extraData.foo); // 输出 'bar'
}
})
注意事项
- 两种传参方式可以同时使用
- path 传参适合页面级参数,extraData 适合应用级参数
- 目标小程序必须配置了允许被跳转的 appId 白名单
- 跳转前最好检查目标小程序是否可用:
uni.navigateToMiniProgram({
// ...其他参数
fail: function (res) {
console.log("跳转失败", res.errMsg)
}
})