在做小程序矩阵或策划联合营销活动时,我们经常需要把用户从当前小程序引导到另一个小程序。很多刚接触这块的开发者或产品运营,会习惯性地称之为“退出小程序跳转”。但其实在微信生态里,直接跳出微信打开外部网页限制重重,我们真正高频使用的核心场景,是“跨小程序跳转”。
要实现这个功能,微信官方提供了一个非常直接的内置 API:wx.navigateToMiniProgram。不过,光知道调用 API 可不够,很多新手在真机测试时经常会遇到跳转失败的坑,这多半是因为漏掉了一个关键的全局配置。
在动手写页面代码前,你得先打开全局的 app.json 文件,找到 navigateToMiniProgramAppIdList 字段,把目标小程序的 AppID 加进白名单。这里有两个容易踩坑的细节:一是这个配置必须写在全局文件里,而不是单个页面的 .json 中;二是标准的 JSON 文件里千万别加注释,否则会导致解析报错。

{
"navigateToMiniProgramAppIdList": [
"目标小程序的AppID"
]
}
白名单配置妥当后,就可以着手写页面逻辑了。这里有个微信的硬性规定必须牢记:跨小程序跳转绝对不能由代码在页面加载时自动触发,必须有用户的真实交互,比如点击按钮。因此,我们需要在 WXML 视图里放一个按钮,并绑定相应的点击事件。
<button bindtap="jumpToOtherMiniProgram">前往合作方小程序</button>

在页面的
.js 文件里,可以把跳转逻辑封装成一个独立方法。当用户点击按钮时,直接调用 wx.navigateToMiniProgram,传入目标 AppID 和页面路径。为了方便排查问题,建议在回调里加上成功或失败的日志提示。Page({
jumpToOtherMiniProgram() {
wx.navigateToMiniProgram({
appId: '目标小程序的AppID',
path: '/pages/index/index?source=current_app',
extraData: {
shareId: '123456'
},
envVersion: 'release',
success(res) {
console.log('跳转成功', res);
},
fail(err) {
console.error('跳转失败', err);
}
});
}
})
代码跑通只是第一步,在实际业务落地时,还有几个细节能帮你少走很多弯路。

关于参数传递,如果你需要把当前用户的信息或活动参数带给目标小程序,可以在
path 后面直接拼接 query 参数;如果是比较复杂的对象数据,就可以像上面代码那样,通过 extraData 字段来传递。至于环境版本,这是测试阶段最容易翻车的地方。在开发联调时,记得在 API 参数里指定
envVersion 为 'develop'(开发版)或 'trial'(体验版),确保能跳到对应版本的小程序。如果不写这个参数,系统会默认拉起线上正式版,这往往会让测试同学对着未生效的代码抓狂。把这套流程彻底跑通后,你会发现跨小程序跳转其实是私域流量流转的一把利器。无论是自家产品矩阵互相导流,还是跟外部合作方做资源互换,这种无缝衔接的体验,远比让用户长按识别二维码或复制链接要顺畅得多。把技术细节打磨好,减少跳转过程中的摩擦感,用户的转化率自然也就水到渠成了。
Se Connecter Maintenant