以
获取URL Scheme
为例
URL Scheme
重要知识点
通过官方文档我们可以得知以下信息
- 获取的 Scheme 格式为
weixin://dl/business/?t= *TICKET*
- 获取方式
服务端获取
- 系统兼容:ios 能直接打开,安卓需要一个
H5 中转页
,使用location.href
的方式打开
获取 URL Scheme
第一步 获取接口调用凭据
appid
与secret
去微信公众平台获取
通过接口调用我们能够拿到access_token
第二步 获取加密scheme码
注意事项: access_token
需要以 query 方式传入
我们可以在 query 里面拼接字符串参数,最终生成如下 URL Scheme
注意 以上接口的调用需要后端进行封装,然后给前端调用,jump_wxa->query
的参数可以让前端传入,不同的场景传入不同的参数,为了解决短信连接中参数过长问题,可以使用短码服务
讲参数信息生成一个短码如: E6GFMHALIBCN
这种
前端解析URL Scheme
开发工具调试
再开发环境下,我们可以通过开发工具去进行调试,如下:
以uni-app
为例额,我们可以在App.vue--->onShow
生命周期中获取到短码中的信息,如下
通过打印可以看到,path,query 中的信息都是上面接口中传入的数据,然后前端根据场景值1065
进行调试
看官方文档其实这个调试还挺麻烦,path 的页面路径必须是已经发布的小程序存在的页面
我现在的处理方式是在App.vue->onShow
中拦截到1065
的场景值,我都会跳转到一个中转页,然后在中转页中做好逻辑判断,比如登录信息之类的,然后获取到自己业务系统中生成的短码,也就是上面介绍的短码E6GFMHALIBCN
去请求自己业务系统的接口,获取到短码内容,内容中会包含后续操作的信息,如下:
这部分内容可以跟后端协商,生成模板,比如path,title等字段是固定的,其他字段可根据不同的场景进行增删
真机调试
最简单的调试就是用vscode
的live serve
插件起一个服务,里面就写一行代码,如下
这其实就是前面说的H5 中转页
,解决安卓不支持 Scheme 的问题
然后讲这个服务的地址发送到短信或者微信聊天记录中主要:要在局域网内
点击之后可以出现以下界面操作
实际的情况,我们的 H5 中转页
里面需要去请求接口换取URL Scheme
,然后使用location.href
打开小程序
发信的短信参考如下:
标红的字符是我们业务自己实现的短码,用于代码中接口请求获取URL Scheme
的参数
微信扫一扫打开小程序
方式一: 扫普通二维码打开小程序
微信公众平台->开发管理->开发设置
可以看一下里面的介绍
方式二: 将短信中的链接生成二维码使用微信扫一扫打开
可以使用草料二维码生成测试一下
不过既然已经生成了短码以及链接,还是所有的打开方式使用一种模式,这样的话可以用同一个方法去执行业务逻辑
小程序内部扫一扫业务逻辑
微信的扫一扫跟小程序内部的扫一扫区别是
微信扫一扫遇到网页链接回去给你打开这个网页
小程序扫一扫所有的内容都会给你当成字符串
这个时候我们其实可以借助小程序的扫一扫去写短信链接,微信扫一扫打开小程序的逻辑
可以看到逻辑都是获取业务系统的短码
,然后跳转到中转页,这样的好处就是我们小程序即使没上线,只要测试把小程序内部的扫一扫测试通过之后,等小程序上线短信链接打开的方式基本上就不会有啥问题。