想从微信之外的场景——比如短信、邮件、浏览器页面——直接把用户带进小程序,官方目前给出的路径主要有两条:URL Scheme 和 Universal Links(通用链接)。URL Scheme 是微信提供的一种特殊链接格式,点开就能跳到小程序的指定页面,跟短链接搭配起来用特别顺手。
有人可能会问:Scheme 本身就能跳转,为什么还要多套一层短链接?这个疑问很合理,答案也很实际。Scheme 链接通常又长又丑,后面拖着一串参数,塞进短信里占字数不说,还容易被截断,发到社群里观感也乱糟糟的。包一层短链接之后,链接干净了,还能顺带做点击统计。更关键的是,万一哪天小程序页面路径变了,或者 Scheme 到期失效,只要在后台换掉跳转目标就行,已经发出去的短链接原样可用,印好的海报物料也不至于报废。

先说怎么拿到 Scheme 链接。登录微信公众平台,进入小程序后台,在「开发」→「开发管理」→「开发设置」里就能找到 URL Scheme 的生成入口。生成方式有两种,一种是调微信官方接口 generateShortLink,适合程序化批量生成,请求参数大致长这样:
{
"path": "pages/index/index?param=123",
"expireType": 1,
"expireTime": "2026-12-31 23:59:59"
}
其中 path 是小程序页面路径,可以带参数;expireType 填 1 表示永久有效,填 2 则是限时有效,选限时的话必须补上 expireTime 作为过期时间。走接口有个前提:小程序必须已经发布,并且开通了相应权限。如果只是临时测试一下,倒不用这么麻烦,直接在后台「工具」→「生成 URL Scheme」里手动填页面路径和参数就行,拿到的链接格式类似 weixin://dl/business/?t=xxx。
拿到 Scheme 之后,就可以用文档里那套 HTML + PHP 的自建短链接工具来缩短了。前端基本不用动,把输入框的占位提示改成「请输入小程序 Scheme 链接」即可;JS 部分照旧用 fetch 把长链接发给 PHP 接口;PHP 负责生成短码,并把短码和 Scheme 的映射关系存进数据库。真正要改的只有两处。第一,短链接所用的域名必须完成 ICP 备案,这是微信对跳转链接的硬性要求。第二,跳转逻辑要改成:根据短码查出对应的 Scheme,然后做一次 302 重定向。

$shortCode = $_GET['code'];
$schemeUrl = 从数据库查询对应的 Scheme 链接;
header("Location: " . $schemeUrl);
exit;
改完就能测了。把生成的短链接复制到浏览器或者微信以外的 App 里打开,正常情况下会自动唤起微信并拉起小程序。第一次使用时,微信通常会弹出「网页试图打开微信应用」的确认框,需要用户手动点允许——这不是出了 bug,而是微信的安全机制,属于预期行为。

接下来几个坑得提前心里有数。政策层面,非微信域名的链接跳小程序受域名白名单限制,需要在公众平台的「开发设置」里配置业务域名和跳转域名,而且域名必须完成备案。另外,金融、医疗等部分行业可能压根不允许用外部链接直接拉起小程序,动手之前最好先确认所在行业的规范,免得白忙一场。

兼容性也不算完美。iOS 对 weixin:// 协议的支持比较顺畅,前提是用户手机里装了微信。Android 这边就麻烦一些:不少浏览器会直接拦截这个协议,点了没反应,只能退而求其次,引导用户手动复制链接到微信里打开,体验上难免打个折扣。
自建工具本身的局限同样要说清楚。文档里的 PHP 代码只是简化示例,既没有真正的数据库存储,也没做短码唯一性校验,原样拿去用迟早出问题,至少要把映射关系落到 MySQL 或 Redis 里。等访问量上来了,自建方案在并发和稳定性上都会吃紧,这时候就别硬撑了,交给专业服务更稳妥。
专业服务的选择其实不少。腾讯云 URL 安全跳转胜在和微信生态的天然兼容性,自带数据统计;阿里云短链接支持自定义域名和 API 批量生成,适合有开发能力的团队。如果不想折腾服务器,suo.run(快缩短网址)这类轻量工具也值得一看——它本身就支持小程序跳转场景,免登录粘贴链接即可生成短链,还能查看点击量、来源、设备等基础数据,对运营同学来说上手成本几乎为零。
最后给个总体建议:学习和小范围测试,自建短链接完全够用,还能顺便把跳转原理摸透;但如果是正式的、长期的业务用途,还是优先考虑微信官方推荐的通用链接,或者稳定性有保障的专业短链接服务。毕竟,在跳转成功率和合规性这两件事上省下来的事,往往会变成后面要踩的更大的坑。
立即登录