iOS 9 (通用鏈接) Universal Links

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可以登錄蘋果開發者賬號來獲取:

取Team ID放到appID中

bundle id是在項目中獲取:

General下 bundle id放到appID中

paths:為服務器路徑,*號代表域名根目錄以下都會打開APP。

上傳這個文件到你的域名根目錄,檢測上傳成功:蘋果給我們提供了網址讓我們來測試apple-app-site-association文件是否上傳成功,根據我的實驗發現就算在蘋果提供的測試網站提示錯誤的,有時候也可以使用,區分的標準為點擊:https://你的域名/apple-app-site-association可以訪問到文件就可以了。

4.證書要求

通用鏈接需要你在開發者中心 Identifiers-->App IDs中找到自己的證書支持 -->Associated Domains:

如果當前不支持Associated Domains可以點擊下邊的Edit進行編輯,成功以后需要重新下載證書。

5.項目配置

在項目中找到Capabilities --> Associated Domains 點擊右側開關打開Associated Domains功能:

上圖表示成功,打開的時候報錯,檢查一下bundle id是否一致

添加支持的域名:

添加ni需要支持的域名

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

這是我研究過程中碰到的坑,希望對你們有所幫助!如過有任何疑問請聯系我,大家一起學習

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容