什么是Universal Links?
Universal Links是iOS9推出的一項功能,使你的應用可以通過傳統(tǒng)的HTTP鏈接來啟動APP(如果iOS設備上已經安裝了你的app,不管在微信里還是在哪里)默怨, 或者打開網頁(iOS設備上沒有安裝你的app)炬灭。
很顯然 Apple 正在大力推動 APP 開發(fā)者在深層鏈接上有更好的體驗荣赶。所有的消息都圍繞著深層鏈接技術训唱。與此同時, Apple 推出通用鏈接:一種能夠方便的通過傳統(tǒng) HTTP 鏈接來啟動 APP, 使用相同的網址打開網站和 APP玫霎。
通過唯一的網址, 就可以鏈接一個特定的視圖到你的 APP 里面, 不需要特別的 schema 凿滤。試想一下 Twitter 使用了通用鏈接, 那么你每在 twitter.com 點擊一個鏈接, 你的 iOS 設備都會在 Twitter 里面自動打開這個頁面, 而不是當你沒有安裝時轉到普通的網頁。這個用戶體驗是順暢的, 最重要的是用戶不會失去上下文(跳到 APP 后 Safari 上不再留下空標簽)庶近。
使用Universal Links
實現通用鏈接不難, 但首先必須遵守一些先決條件翁脆。如下:
有一個注冊的域名
通過 SSL 訪問域名
支持上傳一個 JSON 文件到你的域名
至少 iOS 9 beta 2 版本 [下載],這很重要, 因為如果是之前的測試版本你需要做額外的操作鼻种。
至少 Xcode 7 beta 2 [下載]
1.添加域名到 Capabilities
首先,
需要在開發(fā)者中心做配置:找到對應的App ID反番,在Application Services列表里有Associated Domains一條,把它變?yōu)镋nabled就可以了.
你必須在 Xcode 的 capabilities 里 添加你的 APP 域名, 必須用 applinks: 前置它:還添加一些你可能擁有的子域和擴展(www.domain.com, news.domain.com 等等);
這將使你的 APP 從你的域名請求一個特殊的 JSON 文件 apple-app-site-association叉钥。當你第一次啟動 APP罢缸,它會從 https://domain.com/apple-app-site-association 下載這個文件。跳到下個步驟來了解如何構建這個文件投队。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
說明:
appID:組成方式是 teamId.yourapp’s bundle identifier枫疆。如上面的 9JA89QQLNQ就是teamId。登陸開發(fā)者中心敷鸦,在Account - Membership里面可以找到Team ID息楔。
paths:設定你的app支持的路徑列表,只有這些指定的路徑的鏈接扒披,才能被app所處理值依。星號的寫法代表了可識別域名下所有鏈接。
上傳該文件到你的域名所對應的根目錄或者.well-known目錄下谎碍,這是為了蘋果能獲取到你上傳的文件鳞滨。上傳完后,自己先訪問一下,看看是否能夠獲取到,當你在瀏覽器中輸入這個文件鏈接后蟆淀,應該是直接下載apple-app-site-association文件。
驗證
在iOS設備中的備忘錄中輸入App能識別的鏈接澡匪,然后直接點擊此鏈接熔任,就會直接跳轉到你的app了⊙淝椋或是長按疑苔,在出現的彈出菜單中第二項是在’XXX’中打開,這也代表著成功: