Universal Links(通用鏈接),是蘋果在iOS9之后,提供的一種“可通過傳統(tǒng)HTTP鏈接來跳轉(zhuǎn)APP”的能力。 該特性相較于傳統(tǒng)的Custom URL Scheme方式,具備唯一、安全、私有和簡單的優(yōu)勢(shì)
官方文檔
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.該文件需要上傳到主域名對(duì)應(yīng)服務(wù)器的根目錄
文件內(nèi)容格式如下
{
"applinks": {
"apps": [],
"details": [{
"appID": "xxx",
"paths": ["/test_tika_app/*","/test_tiaka_userinfo/*"]
}]
}
}
"appID":內(nèi)容為TeamID.bundleID(ex:7ABCDEFD.com.apple.wwdc),是唯一的
"paths"是一個(gè)字符串?dāng)?shù)組指定可以通過哪些Path跳轉(zhuǎn)至app。這里設(shè)置了"/test_tika_app/*",外部可以通過"https://{host}/test_tika_app/xxx”跳轉(zhuǎn)至我們app。
2、Xcode配置
1.證書需要開啟Associated Domains功能
2.Xcode 配置Associated Domains 。 添加Domains ,格式為applinks:{host}
3、測試
可以通過Safari測試,在Safari輸入地址https://{host}/test_tika_app/xxx 下滑可以顯示橫幅,點(diǎn)擊可以打開app
通過Universal Link進(jìn)入app時(shí)會(huì)觸發(fā)代理方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
4、Universal Links基本運(yùn)作流程
- APP第一次啟動(dòng) or APP更新版本后第一次啟動(dòng)
- APP向工程里配置的域名發(fā)起Get請(qǐng)求拉取apple-app-association Json File
- APP將apple-app-association注冊(cè)給系統(tǒng)
- 由任意webview發(fā)起跳轉(zhuǎn)的url,如果匹配了apple-app-association注冊(cè)過的通用鏈接(path字段配置)
- 打開App,觸發(fā)Universal Link delegate
- 沒匹配,webview繼續(xù)跳轉(zhuǎn)url(當(dāng)普通的url跳轉(zhuǎn))