在 H5 活动页、短信链接或者广告落地页里,把用户引导进小程序,是很多项目躲不开的一步。跳转这件事看着不复杂,但 H5 所在的环境不同,可用的实现方式差别很大。常见的做法有这么几类,分开说会清楚一些。
如果 H5 主要在系统浏览器里打开,最直接的办法是用 URL Scheme。它的原理是利用微信提供的协议链接,用户点击后尝试唤起微信,并打开指定的小程序页面。获取 URL Scheme 通常有两条路:通过服务端接口生成,或者登录小程序管理后台,在“工具-生成 URL Scheme”里操作。拿到链接后,前端处理并不复杂,在按钮的点击事件里把 location.href 指向这个 scheme 就行,系统会自动处理后续的唤起流程。
这里有两个容易踩坑的地方。一是在微信内打开这类 scheme,通常只会进入正式版;如果 scheme 里指定了体验版或开发版,往往要在外部浏览器里打开才会生效。二是这种方式更适合自研 H5 应用,把按钮做在页面里,用户点击后唤起微信,整个路径会顺一些。

如果 H5 主要是在微信内传播,比如公众号文章、聊天分享页,那么微信开放标签 wx-open-launch-weapp 会更合适。它可以在 H5 里直接渲染出一个跳转小程序的按钮,用户不用先跳转到中间页,体验更顺畅。接入时,页面需要先引入 1.6.0 及以上版本的微信 JS-SDK,在 wx.config 的 openTagList 里声明 wx-open-launch-weapp,然后在页面相应位置放上这个标签,并填好小程序的路径和参数。这个方案的限制也比较明确:只有非个人主体认证的小程序才能使用,而且只能跳转到已经发布的正式版,体验版和开发版是跳不了的。
还有一种情况是 H5 本身就跑在小程序的 web-view 里。比如小程序内嵌了一个活动页,这个 H5 需要引导用户去小程序的其他页面。这时候可以在小程序页面里放一个 web-view 组件,把 src 指向 H5 地址;在 H5 内部,通过微信 JS-SDK 提供的 wx.miniProgram.reLaunch 方法,就能从 H5 跳回小程序指定页面。这种方案天然依赖小程序和 H5 的配合,两端的路径、参数和通信都要对齐,而且必须都在微信环境中运行,外部浏览器打开 H5 是调不动这个能力的。
如果前面这些方案都不想自己折腾,市面上也有一些第三方工具或平台可以帮忙,比如“快缩短网址”这类服务。它们通常会把创建外链、配置跳转参数、生成按钮等步骤打包好,适合开发资源有限或者需要快速上线活动页的情况。不过用第三方平台时,安全和可靠性要放在第一位,使用前最好认真看一下服务条款和隐私政策,避免拿用户数据冒险。

不管最终用哪种方案,有几个共性问题值得提前想清楚。小程序的路径必须是已经声明过的页面路径,参数也要符合小程序的接收规范,否则页面可能直接白屏或提示错误。跳转做好后,别只在一台手机上试,iOS 和安卓、不同微信版本、微信内和微信外都过一遍,稳定性才有底。用户体验上,尽量减少多余的确认步骤,跳转链路越短,用户流失越少。
落到具体选择上,先看 H5 主要出现在哪里,再结合开发资源来判断。外部浏览器为主的用 URL Scheme,微信内传播为主的优先考虑开放标签,想省事可以借助第三方工具,小程序内嵌 H5 的场景就走 web-view。把使用环境拆清楚,方案选择基本就不会跑偏。
지금 로그인