通用鏈接(Universal Links)早在iOS 9中就已經引入了,是一種能夠方便的通過傳統 HTTP 鏈接來啟動 APP的技術。實現通用鏈接需要以下幾步:
### 一、為App ID勾選Associated Domains功能
登錄蘋果開發網站,找到你的應用包名App ID,勾選上Associated Domains功能,然后更新你的mobileprovision描述文件重新上傳到控制臺。
### 二、配置UZApp.entitlements文件
配置UZApp.entitlements文件的方式參照另一篇教程iOS修改entitlements文件,內容如下,需要把applinks:后面的內容換成你自己想要關聯的域名,系統會從該域名請求一個 JSON 文件 apple-app-site-association,可以配置關聯多個域名。配置完成后將UZApp.entitlements文件放置到網頁包的res文件夾下,然后同步代碼到云端。
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:xxx.com</string>
</array>
</dict>
</plist>
```
### 三、上傳 apple-app-site-association 文件
這是一個JSON格式的文本文件,內容如下,其中appID為你蘋果開發者賬號的團隊標識和應用的包名組成,paths可以配置多個,可以直接配置"*",表示整個域名下網址都支持Universal Links,添加paths的時候注意區分大小寫。
```
{
"applinks": {
"apps": [],
"details": [
{
"appID": "6KYKP3473B.com.xxx.app",
"paths": ["/wwdc/news/*"]
}
]
}
}
```
將文件放置在上面配置的域名根目錄下,如果在瀏覽器能打開https://xxx.com/apple-app-site-association,那么說明配置成功。
> 注:文件保存時不要加.json后綴,必須通過https訪問并且服務器CA證書需是受信任的。
### 四、云編譯應用
安裝到手機上面并打開,然后打開手機上面的備忘錄,輸入https://xxx.com/wwdc/news,點擊該鏈接后能直接啟動應用則說明整個流程正確。應用里面可以通過監聽appintent事件來獲取具體的鏈接地址做相應處理。
> 注:在web頁面通過a標簽跳轉來拉起應用時,當前web頁面地址的域名和通用鏈接的域名需要不同。