在项目中接入Universal Links,顺便记录一下使用方法。
有用的话,不妨帮我点个赞。
谢谢~
App配置规则
1. App ID中添加Associated Domains
2. App中在Target->Capabilities->Associated Domains中,开启Associated Domains功能
3. 添加applinks入口
-
以
applinks:
打头,如applinks:gxq168.com
- 是否添加
www
是有区别的 - 添加
applinks:www.gxq168.com
后,才能支持www.gxq168.com/*
的入口,二级域名也一样
- 是否添加
-
添加二级域名入口
- 如
appweb.gxq168.com
- 如
-
可以通过
*
号通配一个域名的所有域名入口-
*.gxq168.com
,通配appweb.gxq168.com
,www.gxq168.com
等 -
*.gxq168.com
不能通配gxq168.com
因为*
号的级别不同 - 用
*
通配applinks入口匹配时,优先适配最长的一个applinks入口,如open.user.gxq168.com是通过*.user.gxq168.com
,*.gxq168.com
中,前者匹配到的
-
-
为URL配置
apple-app-site-association
JSON文件- 每一个域名的根目录下都需要配置一个
apple-app-site-association
JSON文件 - 形如
gxq168.com
、www.gxq168.com
可以共用一个JSON文件 -
*
通配的链接可以共用URL的JSON文件
- 每一个域名的根目录下都需要配置一个
可以配置20个左右,官方文档中
Limit this list to no more than about 20 to 30 domains
服务端JSON配置规则
1. 服务器需要配置的json文件,
- 根域名配置
apple-app-site-association
命名的JSON文件,如: 通过www.domain.com/apple-app-site-association可以访问到该文件。检验URL是否有效 切记文件不加.json后缀
2. JSON文件解析
1. apps
必须存,且为空数组
2. details
为数组,可以通过添加多个字典结构适配多个App
-
appID
组成规则8738YWRZYU
Apple开发者账号的Team ID,com.jinfuzi.gunxueqiu
App的Bundle ID
-
paths
为字符串组成的数组-
/wwdc/news/
标识一个特定的URL=> https://www.domain.com/wwdc/news 链接 -
/videos/wwdc/2015/*
通配部分URL=> https://www.domain.com/videos/wwdc/2015/*链接 -
/videos/wwdc/201?/*
用?号通配一个单一的符号 -
NOT videos/wwdc/2016/*
从通配URL中排除/videos/wwdc/201?/*
中,2016这个特定年份
-
{
"applinks": {
"apps": [],
"details": [
{
"appID": "8738YWRZYU.com.jinfuzi.gunxueqiu",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
3. 通过Charles抓包查看App是否下载JSON文件
App在安装的时候会去下载applinks服务器上json文件,抓包显示如下
ueep.app.link是branch提供的URL
另:
测试的时候可以通过branch提供Universal Link服务进行测试,省去服务器配置这个环节
附件
How to Set Up Universal Links to Deep Link on Apple iOS 9
Support Universal Links