公司最近要求APP适配,在微信上支持用Universal Link(通用链接)跳转到APP,所以捣鼓了许久终于实现了该功能。此篇文章就简单记录下细节点。
实现的基本要求
1、微信SDK1.8.6.1版本开始支持
2、微信版本7.07及以上
3、iOS版本12及以上
4、需要至少两个一级域名。
5、H5页面的按钮链接在配置文件的白名单范围内
实现流程:
1、APP适配通用链接
2、微信开发者账号添加通用链接
3、服务器处理
1、APP适配通用链接
至于如何适配不详细说,简书上有很多这方面的教程。在此放个快捷门:iOS快速配置Universal Links
需要注意的点:
1、apple-app-site-association文件名是固定的,且没有后缀名
2、apple-app-site-association文件内容格式固定,details前面照抄就行,如果有多个APP,直接在details数组里面写多个字典,一个字典代码一个APP。appID:teamID.APPBundleID,paths可以写多个路径,打开某个路径,关闭某个子路径(NOT /subPaths)
{
"applinks": {
"apps": [],
"details": [
{
"appID": "7A4FDG.com.aaa.app",
"paths": [ "*" ]
}
]
}
}
3、apple-app-site-association文件需要放置路径的路径有两个,没试只放根目录的情况,直接放在两个目录下。
域名根目录和.well-known目录下
4、服务器必须支持https
5、apple-app-site-association文件放置好后,在苹果官网验证是否配置完,输入域名就行,不要有子路径。官网验证
如果现实如下,说明配置成功了
2、微信开发者账号添加通用链接
1、微信开发者上的通用链接必须与APP通用链接域名相同
2、微信开发者账号上的通用链接可以有子目录,如果一个服务器为多个APP使用可以用子目录区分开。
比如:https://aaa.com/music,https://aaa.com/video 可以区分做音乐和视屏的APP
3、服务器处理
1、需要两个域名,微信上打开的链接(页面链接),页面上按钮的链接(点击链接),这两个链接的域名必须不是同一个,不然无法实现点击按钮直接跳转。
2、按钮链接域名是APP通用链接的域名。
跳转现象:
1、页面链接域名与通用链接域名一样,点击按钮都不会直接唤起APP。点击微信右上角弹窗选择“在Safari中打开”直接唤起APP。
2、页面链接域名与通用链接域名不一样,按钮链接域名与通用链接域名一样,且链接子目录在apple-app-site-association文件买名单范围内(允许跳转的称白名单),点击按钮可以直接唤起APP。点击微信右上角弹窗选择“在Safari中打开”不会唤起APP。
猜想
唤起情况有两种:
微信上H5上点击按钮唤起APP是微信做的一套唤起逻辑,
H5页面右上角”在Safari中打开“走的是系统唤起逻辑。
提问:
1、APP何时下载apple-app-site-association文档?
下载APP时
更新APP时
2、APP未迭代更新,但apple-app-site-association文档需要重新,APP如何才能更新到新的?
卸载APP重新安装
3、如何更新apple-app-site-association文档?
从根目录下下载文件,修改了再重新覆盖上去。防止其他人也有用到。