焦点

扫码如何跳转到小程序

时间:2010-12-5 17:23:32  作者:综合   来源:热点  查看:  评论:0
内容摘要:微信扫一扫识别出一张普通二维码,结果直接跳进了一个小程序页面——这事儿在技术上早就不新鲜了。但很多人没搞明白,为什么同样是扫码,有的跳到网页,有的却能拉起小程序?关键不在扫码本身,而在二维码里存了什么

微信扫一扫识别出一张普通二维码,扫码结果直接跳进了一个小程序页面——这事儿在技术上早就不新鲜了。何跳但很多人没搞明白,小程序为什么同样是扫码扫码,有的何跳跳到网页,有的小程序却能拉起小程序?关键不在扫码本身,而在二维码里存了什么。扫码

普通二维码本质上就是何跳一段文本。微信扫到这段文本后,小程序会解析它的扫码格式。如果文本以 http:// 或 https:// 开头,何跳微信内置浏览器就打开一个网页。小程序如果文本是扫码特定格式的 scheme 链接,微信就会按规则去唤起对应的何跳服务。小程序跳转用的小程序就是这套机制。

具体来说,微信定义了一种叫 URL Scheme 的东西,格式大致是 weixin://dl/business/?t=xxxxx。这个 t 参数是一串加密后的标识,指向某个具体的小程序页面。你在微信里扫到这种二维码,微信识别出 weixin:// 前缀,就不会走浏览器,而是交给小程序框架去处理。框架拿到 t 参数,向微信服务器请求对应的小程序路径和参数,然后直接渲染出来。

我拿自己维护的一个点餐小程序做过测试。后台生成一张 scheme 二维码,用微信扫,秒开点餐页,连小程序首页都不带闪的。换成普通 https 链接指向同一功能页,微信会先弹一个“即将打开外部网页”的提示,点确认后才加载 H5,体验完全两码事。

那这个 scheme 二维码怎么生成?微信开放平台提供了接口。开发者需要先在小程序后台配置好路径,比如 pages/menu/index?table=5,然后调用 generatescheme 接口,传参 jump_wxa 里的 path 和 query,微信返回一个 scheme 字符串,再把这个字符串用二维码生成库画成图。整个过程不需要用户授权,也不依赖小程序是否在后台运行。

但有个坑得注意:scheme 二维码有有效期。默认最长 30 天,过期后扫码会提示“链接已失效”。如果你要做长期贴在线下桌角的码,得用 URL Link,格式是 https://wxaurl.cn/xxxxx,有效期可以到 1 年。URL Link 扫出来也是直接跳小程序,但微信会先经过一个中间页做安全校验,速度比 scheme 稍慢几十毫秒,肉眼几乎无感。

另一个容易混淆的点:普通链接二维码。微信扫到 https:// 开头的链接,如果这个链接在微信后台配置过“扫普通链接二维码打开小程序”,微信也会跳小程序。这需要域名备案、下载校验文件、在小程序后台关联。适合已有大量线下物料、不想重新印码的场景。我见过一个连锁奶茶店就这么干,旧海报上的二维码没换,后台一配置,扫码直接进小程序点单,省了几万块物料钱。

实际开发中,scheme 和 URL Link 的生成接口都有频率限制。单小程序每天调用 generatescheme 上限 10 万次,URL Link 是 100 万次。超了就得等第二天。所以别在客户端实时生成,应该服务端预生成一批存数据库,用的时候直接取。

还有个小细节:安卓和 iOS 对 scheme 的处理略有差异。iOS 上如果用户没安装微信,扫 scheme 码会提示“未安装微信”,安卓则可能被其他 App 拦截。不过现在微信覆盖率这么高,这个问题基本可以忽略。

最后说个真实翻车案例。有次我把 scheme 二维码印在宣传单上,忘了设过期时间,默认 30 天。结果活动第二周就有人扫出“链接已失效”。后来换成 URL Link,有效期拉满一年,再没出过事。所以选哪种码,先想清楚你的使用周期。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap