IOS9通用連結使用要點
1 簡介
通用連結是Apple在WWDC2015上為IOS9引入的一個新功能,是通過傳統HTTP連結來啟動App的技術。可以使用相同的網址開啟網站和App。
通過唯一的網址,就可以連結到App中具體的檢視,不需要特殊的schema。如果使用者沒有安裝App則連結到對應的普通網頁。
2 先決條件
l 至少Xcode beta2
l 至少IOS9beta2(之前的測試版本要做額外的工作)
l 有一個註冊通過SSL訪問的域名
3 操作步驟
3.1 註冊App並開啟Associated Domains服務
如果你還沒有註冊App,則需要登陸developer.apple.com註冊一個。
在Identifiers下AppIDs找到自己的App ID,編輯開啟Associated Domains服務。
選中,並儲存。
3.2 在Xcode中開啟Associated Domains服務
a.開啟Associated Domains服務
如果出現如下圖所示的情況請檢查下自己所選的組是否正確,以及Xcode工程中的bundle identifier和註冊的App Identifier是否一致。
b.新增域名,點選Associated Domains的“+”新增字首為applinks:的域名,如下圖所示
c.確認在entitlements檔案包含在工程中
3.3 配置apple-app-site-association檔案
a. 建立apple-app-site-association的json檔案
檔案格式如下圖所示:
其中apps項必須對應一個空的陣列。details項對應一個字典的陣列,網站所能支援的每個app一個字典。
appID對應項由字首和ID兩部分組成,可以在developer.apple.com中的Identifiers→AppIDs中點選對應的App ID檢視。
paths對應域名中的path,用於過濾可以跳轉到App的連結,支援萬用字元‘*’,‘?’以及‘NOT’進行匹配,匹配的優先順序是從左至右依次降低。
b. 伺服器配置要求:
域名需要SSL證書,如果不支援HTTPS,則需要對apple-app-site-association進行SSL認證。認證命令如下:
catapple-app-site-association-unsigned | openssl smime -sign -inkey yourdomain.com.key -signer yourdomain.com.cert -certfile digicertintermediate.cert -noattr-nodetach -outform DER > apple-app-site-association
伺服器配置要求站點必須是youdomain.com/apple-app-site-association,請求頭是‘application/pkcs7-mime’,返回HTTP碼是200。
3.4 響應處理
點選連結跳入App,由UIApplicationDelegate中的application:continueUserActivity:restorationHandler:函式進行處理,通過如下方式獲取URL,然後對不同的URL進行不同的響應。
4 一些注意的事項
1. apple-app-site-association不需要.json字尾。
2. 如果要對沒有path的域名進行支援(如:www.163.com),在json檔案的paths中用萬用字元’*’是不行的,需要在paths陣列中加入’/’進行匹配。
3. 對json檔案的請求僅在App第一次啟動時進行,如果此時網路連接出了問題apple會快取請求,等有網的時候再去請求,而實際測試抓包並沒有請求故通用連線會失效。
4. paths匹配的優先順序是從左至右依次降低,但需要明確,否則會出問題。比如"paths":["NOT /together/*","*"],在IOS9.2上path為/together/*都不會跳到App,但是在IOS9.0上會跳到。