1. 通用鏈接
通用鏈接要求在iOS9及以上的版本運行,做用是可以備忘錄,短信,郵件中點擊鏈接跳轉APP,
這里有對Universal Links介紹的官方文檔:
2.使用通用鏈接的準備
通過 SSL 訪問域名 ? (支持https)
支持上傳一個 JSON 文件到你的域名 ? (支持上傳文件到域名根目錄)
至少 iOS 9 版本?
至少 Xcode 7 beta 2 ?(因為之前的版本不支持)
3. 創建apple-app-site-association文件并上傳該文件
首先創建一個名為apple-app-site-association的JSON文件,注意這個文件不能有后綴這很重要,文件的內容為:
appID:是由Team ID和bundle id拼接出來的,Team ID可以登錄蘋果開發者賬號來獲取:
bundle id是在項目中獲取:
paths:為服務器路徑,*號代表域名根目錄以下都會打開APP。
上傳這個文件到你的域名根目錄,檢測上傳成功:蘋果給我們提供了網址讓我們來測試apple-app-site-association文件是否上傳成功,根據我的實驗發現就算在蘋果提供的測試網站提示錯誤的,有時候也可以使用,區分的標準為點擊:https://你的域名/apple-app-site-association可以訪問到文件就可以了。
4.證書要求
通用鏈接需要你在開發者中心 Identifiers-->App IDs中找到自己的證書支持 -->Associated Domains:
5.項目配置
在項目中找到Capabilities --> Associated Domains 點擊右側開關打開Associated Domains功能:
添加支持的域名:
6.接受響應的代碼
在AppDelegate.m中調用- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler 方法來處理響應
注意點:
1. Universal Links不支持本域跳轉,意思就是你當前的頁面鏈接和你要跳轉的域名不能相同,否則跳轉不成功。
2. *號代表域名根目錄一下的路徑都可以訪問APP,根據我的測試發現根目錄調用不會跳APP也就是說你的域名是smda.vshunter.com,那么你用https://smda.vshunter.com是不會跳app的,正確的應該是https://smda.vshunter.com/user或者https://smda.vshunter.com/....,這樣才能跳APP
這是我研究過程中碰到的坑,希望對你們有所幫助!如過有任何疑問請聯系我,大家一起學習