IOS 配置Universal Links

1.Universal Link 的基本運作機制:

  • 通過在 XCode 的 App 配置中配置了相關信息以及安全域名指定
  • 通過在 Https only 的安全域名上部署一個配置 apple-app-site-association file
  • file 中配置上豐富的 website 與 app 的鏈接信息
  • 在 website 與 app之間建立起了安全有效的握手機制
  • 實現 website 的 url 與 app 的直接聯動

2.apple-app-site-association 的配置

首先放上官網文檔的地址:Support Universal Links

(1)創建 apple-app-site-association 文件(文件名稱不能更改)

在本地創建json文件,文件內容

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "2QTWJE35GG.com.text.mine",
            "paths": ["/sht/*"]
        }]
    }
}

apps:為必寫且固定為[]
appID:TeamID + '.' + BundleID
比如我項目的
teamID為2QTWJE35GG;
BundleID為com.text.mine,
最后appID為2QTWJE35GG.com.text.mine
paths:是一個字符串數組,對應域名中的path,用于過濾可以跳轉到App的鏈接,支持通配符*,?以及NOT進行匹配。
details數組中可以配置多個APP的信息,如果公司內有多個APP需要支持Universal,則可以直接添加多個。

(2)將配置好的apple-app-site-association文件上傳到服務器

apple-app-site-association文件需要上傳到服務器的根目錄下 ,也可以在根目錄中添加.well-known文件夾,將文件上傳到.well-known文件夾下(.點一定不能少),對應連接分別為
https://xxx/apple-app-site-association
https://xxx/.well-known/apple-app-site-association
xxx為你服務端的域名

注意:上傳apple-app-site-association文件時,一定要先帶文件后綴一起上傳(即原文件,不要強制去掉后綴),然后在服務端重定向一個沒有后綴的鏈接(如上面鏈接所示,否則通過不了 ,這里卡了一上午)。

蘋果提供了一個網頁來驗證我們編寫的這個apple-app-site-association文件是否合法有效,進入驗證網址進行驗證:

WeChat9c6beab9adb8b3109b16f57693b1a7d5.png

出現 Error no apps associated with url 則表明驗證通過

(3)配置開發者證書

進入開發者網站,找到對應ID,開通Associated Domains,更新對應描述文件

4971577349028_.pic_hd.jpg

(4)項目配置

在TARGETS的Capablities中開啟Associated domains


FEFEF99D586BB989822BDE346C82D147.png

Domains配置的內容為applinks: + 域名(即步驟二中的xxx)
比如:applinks:aliyun.sht.com

實現喚醒代理

 -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{

    NSLog(@"userActivity : %@",userActivity.webpageURL.description);
    return YES;
}
驗證配置

先運行項目,然后
在Safari中輸入https://xxxxx/path,path是apple-app-site-association文件中配置的,下拉后出現類似下面的頁面,則表示成功

LIP8n0ettnbQjXVELUmLx-T2iMXF8oZPcwgD2248WJWNm0X6QYEQ_3kgq7r28WxC.png

注意事項:
1:必須支持https
2:apple-app-site-association名稱不能變
3:文件位置只有上面說的兩個地方
4:teamId和bundleID要正確
5:IOS9以上

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