您现在的位置是:热点 >>正文
扫码如何跳转到小程序
热点72人已围观
简介微信扫一扫识别出一张普通二维码,结果直接跳进了一个小程序页面——这事儿在技术上早就不新鲜了。但很多人没搞明白,为什么同样是扫码,有的跳到网页,有的却能拉起小程序?关键不在扫码本身,而在二维码里存了什么 ...
微信扫一扫识别出一张普通二维码,扫码结果直接跳进了一个小程序页面——这事儿在技术上早就不新鲜了。何跳但很多人没搞明白,小程序为什么同样是扫码扫码,有的何跳跳到网页,有的小程序却能拉起小程序?关键不在扫码本身,而在二维码里存了什么。扫码
普通二维码本质上就是何跳一段文本。微信扫到这段文本后,小程序会解析它的扫码格式。如果文本以 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,有效期拉满一年,再没出过事。所以选哪种码,先想清楚你的使用周期。
Tags:
相关文章
网页客服聊天系统
热点网页客服聊天系统这东西,看着不起眼,但真用起来,能让人又爱又恨。我见过一家做手工皮具的小店,老板白天在工坊敲敲打打,晚上才回电脑前处理消息。他装了个简单的网页客服插件,结果半夜十二点,有个顾客对着自动 ...
【热点】
阅读更多福州高防服务器租用
热点福州仓山的陈老板,做跨境电商独立站,上个月被同行刷了三天流量,服务器直接宕机。他凌晨三点打电话给我,声音都是抖的——那会儿他正跑着黑五的广告,一秒钟的 downtime 都是钱。后来他换了台高防服务器 ...
【热点】
阅读更多mysql分页查询sql语句
热点MySQL的分页查询,说穿了就是LIMIT子句那点事。但真到生产环境里,坑比想象中多。 先看最基础的写法。假设一张user表有十万行数据,你要每页显示20条,查第三页: SELECT * FROM u ...
【热点】
阅读更多