Universal Links(通用链接),是苹果在iOS9之后,提供的一种“可通过传统HTTP链接来跳转APP”的能力。 该特性相较于传统的Custom URL Scheme方式,具备唯一、安全、私有和简单的优势
官方文档
1、apple-app-association文件配置
1.域名必须支持 HTTPS
2.文件路径,二选一(不带任何后缀):
- https:// {host} /apple-app-site-association
- https:// {host} /.well-known/apple-app-site-association
3.JSON 文件大小必须小于 128KB
4.该文件需要上传到主域名对应服务器的根目录
文件内容格式如下
{
"applinks": {
"apps": [],
"details": [{
"appID": "xxx",
"paths": ["/test_tika_app/*","/test_tiaka_userinfo/*"]
}]
}
}
"appID":内容为TeamID.bundleID(ex:7ABCDEFD.com.apple.wwdc),是唯一的
"paths"是一个字符串数组指定可以通过哪些Path跳转至app。这里设置了"/test_tika_app/*",外部可以通过"https://{host}/test_tika_app/xxx”跳转至我们app。
2、Xcode配置
1.证书需要开启Associated Domains功能
2.Xcode 配置Associated Domains 。 添加Domains ,格式为applinks:{host}
3、测试
可以通过Safari测试,在Safari输入地址https://{host}/test_tika_app/xxx 下滑可以显示横幅,点击可以打开app
通过Universal Link进入app时会触发代理方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
4、Universal Links基本运作流程
- APP第一次启动 or APP更新版本后第一次启动
- APP向工程里配置的域名发起Get请求拉取apple-app-association Json File
- APP将apple-app-association注册给系统
- 由任意webview发起跳转的url,如果匹配了apple-app-association注册过的通用链接(path字段配置)
- 打开App,触发Universal Link delegate
- 没匹配,webview继续跳转url(当普通的url跳转)