小程序开发做到一定深度,总有一个绕不开的需求:让用户从你的小程序,直接跳进另一个。这样的场景其实很常见——用户在电商小程序里挑好了东西,最后一步想直接唤起支付;刷内容社区时看到一条推荐,又想立刻跳进对应的工具小程序,把操作一口气做完。这条链路一旦打通,用户既不用退出当前小程序,也不用搜一圈再重新进入,整个体验顺畅得多。

具体怎么做?先从配置开始。打开发起跳转的小程序,找到它的 app.json 文件,添加 requiredMiniprogramAppid 字段,值设成目标小程序的 appid。这一步相当于向平台报备一份“跳转名单”,报备过了,目标小程序才能被当前小程序调用。
配置好了,就可以在页面上写跳转。最省事的方式是 navigator 组件:把 open-type 属性设为 navigate,url 指向目标小程序的路径。写出来大致是这样——跳转。用户点一下,就能跳过去。
不过很多时候,光跳过去还不够,还得捎上一点数据。navigator 组件为此提供了 extra-data 属性,可以挂一个对象传给对方。这个对象里的属性和值,到了目标小程序那边,在 onLaunch、onShow 或 onLoad 等生命周期函数里都能拿到,拿到之后按业务逻辑处理就行。带上订单号跳支付小程序、带上课程 ID 跳视频小程序,靠的都是这条通道。
页面逻辑一复杂,组件就未必够用了。它更适合嵌在页面结构里的固定入口,而由脚本动态触发、要根据条件决定跳不跳的场景,就得换 wx.navigateToMiniProgram 这个 API。它接收一个 object 参数:appId 填目标小程序的 appid,path 指定对方的具体页面,extraData 放要传的数据——后两项都是可选的,按需填就好。调用发起后,平台一般会先给用户一个确认提示,点头之后才真正跳过去,算是避免误触的一道保护。

还有一个容易被忽略的细节:万一用户手机上没装目标小程序怎么办?这时候 fallback 属性就派上用场了。给它一个备用链接,跳转不成功时,用户会被引导到这个链接指向的页面,不至于卡在半路无所适从。
实际用起来,这套能力的发挥空间不小。电商类的小程序,结算可以跳支付小程序,咨询可以跳客服小程序;教育类的,课程内容跳视频小程序去看,学员交流就跳论坛小程序。只要场景设计得合理,几个小程序互相配合,各自的功能边界都会被拓宽。
回头看,整个实现思路就两步:先在 app.json 里完成配置声明,再用 navigator 组件或 wx.navigateToMiniProgram API 发起跳转。参数随跳转一起带过去,由目标小程序在生命周期函数里接住并处理。把跳转这件事做扎实,小程序就不再是各自孤立的产品,而成了能互相借力的节点——能做的事变多了,对用户的价值也跟着上了一个台阶。
立即登入