关于Universal Link(通用链接)的细节

公司最近要求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文档?

从根目录下下载文件,修改了再重新覆盖上去。防止其他人也有用到。

你可能感兴趣的:(关于Universal Link(通用链接)的细节)