一、基本跳转条件
- 关联要求:两个小程序必须被同一个微信公众号关联,否则跳转会报错。不过从微信2.3.0版本开始,不同主体的小程序也可以相互跳转,无需关联。
- 用户触发:跳转必须由用户主动触发(如点击按钮),不能自动跳转。
- 确认弹窗:从2.3.0版本开始,跳转前会统一增加弹窗询问用户是否跳转。
二、跳转实现方法
1. 使用wx.navigateToMiniProgram API
这是微信官方提供的主要跳转方法,可以实现小程序间的跳转并传递数据。
javascript
wx.navigateToMiniProgram({
appId: '目标小程序的appId',
path: '目标小程序的页面路径',
extraData: {
// 需要传递的数据
key1: 'value1',
key2: 'value2'
},
envVersion: 'release', // 开发版:develop 体验版:trial 正式版:release
success(res) {
// 跳转成功的回调
},
fail(e) {
// 跳转失败的回调
}
})
2. 通过URL Scheme跳转
对于H5页面跳转小程序的情况,可以使用URL Scheme方式:
html
<a href="weixin://dl/business/?t=XXX">点击跳转小程序</a>
三、参数传递与接收
1. 参数传递方式
在跳转时可以通过两种方式传递参数:
- path拼接 :在path中直接拼接参数,如
/pages/home/home?name=value
,接收方在options.query
中获取。 - extraData :通过extraData传递复杂数据,接收方在
options.referrerInfo.extraData
中获取。
2. 参数接收方法
目标小程序可以在以下生命周期函数中接收参数:
javascript
// 目标小程序的app.js
App({
onLaunch(options) {
// 接收通过URL传递的参数
console.log(options.name);
// 接收传递的参数
console.log(options.referrerInfo.extraData)
},
onShow(options) {
// 也可以在这里接收参数
console.log(options.referrerInfo.extraData)
}
})
四、实际应用场景
- 电商场景:从商品展示小程序跳转到支付小程序,传递订单信息。
- 内容平台:从内容列表小程序跳转到详情小程序,传递内容ID。
- 会员系统:从活动H5页面跳转到小程序,传递会员ID和活动信息。
- 跨平台导流:从抖音、小红书等平台通过链接跳转到小程序,传递来源信息。
五、注意事项
- 参数长度限制:建议控制在128字符以内,避免部分机型解析问题。
- 特殊字符处理:对参数中的特殊字符进行URL编码。
- 调试技巧:在开发者工具中跳转不会真实跳转,但会校验跳转是否成功。
- 版本兼容:不同版本的小程序API可能有差异,需注意兼容性。
- 运营规范:避免小程序盒子等互推行为,遵守微信运营规范。
通过以上方法,可以灵活实现小程序间的跳转与数据传递,构建更加丰富的应用场景和用户体验。