宿主扫码直接调起小程序
功能说明
小程序二维码内容为 http 链接,形式有长路径链接 和短路径链接两种;
小程序二维码内容
- 小程序有效域名的正则表达式:
http[s]?:[\/]{2}(.*baidusmartapps.com|.*baidusmartapps.cn|.*baiduminiapps.cn|mbd.baidu.com)
- 长路径链接 path:
/ma/qrcode/parser
- 短路径链接 path:
/ma/s/*
小程序二维码示例
开源宿主直达小程序方案
二维码打开小程序过程:
判断二维码内容是否为小程序,有调用 api 和 客户端自己实现两种方案,在第二部分介绍;
请求二维码中的链接时,header中携带User-Agent,User-Agent中需要包含在开源宿主平台申请的hostname,包含方案为 hostname 前加 swan-前缀:swan-${hostname};
二维码中的链接会自动302到宿主schema的小程序链接;
二维码内容判定为小程序的方案
- 正则匹配小程序长链和短链结果,同时请求时候需要在header User-Agent包含: swan-babybus
- 打开链接,自动302
babybus://swan/VPVEGwD6qIknxHR6REO5isIxdSfDcV7T/src/pages/health-code-mine/index?color=green&_baiduboxapp=%7B%22from%22%3A%221180000000000000%22%2C%22ext%22%3A%7B%7D%7D&callback=_bdbox_js_275&upgrade=0 - 得到调起协议结果后,将调起协议放入
SwanAppLaunchHelper.launch(String uri)
接口中,小程序框架会进行调起小程序的操作