文章目录
- 实现方案
- 需下载二维码
- 使用URL Schema
- 微信云开发
- 实现方案对比
- 实践出真知(URLSchema)
- 获取微信access_token
- 获取openlink
- H5页面(模拟短信跳转,验证ok)
- 反馈问题
- ios和Android 对URLSchema兼容性
- 开发者工具可直接测试URL Schema
- URL Schema 官方最新变更20220411
- 一个urlSchema只能一个用户访问
- 调用上限及有效期
去年就在调研如何从短信链接跳转到微信小程序,搜索了好多,也去官方论坛转了一圈,得到的回复只有一个:不可能! 今天组内大神在逛帖子的时候告知我们微信官方文档有惊喜,跑去一看,果然很惊喜呀~
实现方案
需下载二维码
- 点击短信中链接,打开H5页面
- 保存页面中小程序二维码(包含指定页面地址和传参)
- 打开微信,扫描二维码进入小程序指定页面
使用URL Schema
- 点击短信中链接,打开H5页面
- 进入页面直接自动触发跳转操作,到小程序指定页面
微信云开发
- 在云开发中开通静态网站,然后将H5部署(收费)
- 使用 cloudbase.sendsms 接口,即可触发下发短信(需要强制使用微信短信平台)
实现方案对比
方案 | 优点 | 缺点 |
需下载二维码 | 实现方案可控,免费 | 体验感极差 |
使用URL Schema | 实现方案可控,免费, 体验感可以 | 只能到正式环境中测试 |
微信云开发 | 依赖云开发,实现简单,体验感极好 | 收费,强制依赖微信短信平台 |
实践出真知(URLSchema)
获取微信access_token
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appSecret
返回参数:
{
"access_token": "access_token",
"expires_in": 7200
}
获取openlink
被这个请求方式折磨了一通,access_token是放在请求url中,其他参数是放在body中
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=access_token
返回参数:
{
"errcode": 0,
"errmsg": "ok",
"openlink": "weixin://dl/business/?t=12345678910"
}
H5页面(模拟短信跳转,验证ok)
短信链接跳转与H5页面跳转类似,此处用H5页面跳转为例
location.href = 'weixin://dl/business/?t=12345678910'
反馈问题
ios和Android 对URLSchema兼容性
感谢Mr_saisai大佬的指正,微信官方文档上有一段关于系统兼容性问题的描述,IOS无需额外添加H5页面进行辅助跳转~
iOS系统支持识别URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序。
Android系统不支持直接识别URL Scheme,用户无法通过Scheme正常打开小程序,
开发者需要使用H5页面中转,再跳转到Scheme实现打开小程序
开发者工具可直接测试URL Schema
以前需要将未完成的页面发布到正式环境才能进行跳转测试,今天前端大佬悄咪咪告诉我:在微信开发者工具中不用发布页面也能测试啦~~ nice
URL Schema 官方最新变更20220411
获取 URL Scheme
自 2022 年 4 月 11 日起,URL Scheme有效期最长 30 天,不再支持永久有效的URL Scheme、不再区分短期有效URL Scheme与长期有效URL Scheme。若在微信外打开,用户可以在浏览器页面点击进入小程序。每个独立的URL Scheme被用户访问后,仅此用户可以再次访问并打开对应小程序,其他用户无法再次通过相同URL Scheme打开该小程序。 在本次规则调整生效前已经生成的URL Scheme,如果有效期超过30天或长期会被降级为30天有效,只能被1个用户访问,开始时间从调整日期开始计算。
针对以下两个变更,对原有的URL Schema生成代码无影响(无需变更代码逻辑),只是微信内部会将参数统一处理!
一个urlSchema只能一个用户访问
调用上限及有效期
调用上限 Scheme 将根据是否为到期有效与失效时间参数,分为短期有效Scheme与长期有效Scheme: 单个小程序每日生成 Scheme 上限为50万个(包含短期有效 Scheme 与长期有效 Scheme) 有效时间超过180天的 Scheme 或永久有效的 Scheme 为长期有效Scheme,单个小程序总共可生成长期有效 Scheme 上限为10万个,请谨慎调用 有效时间不超过180天的 Scheme 为短期有效Scheme,单个小程序生成短期有效 Scheme 不设上限