iOS 9 通用連結(Universal Links)

發表於2017-02-06

什麼是Universal Links?

在iOS9之前,對於從各種從瀏覽器、Safari中喚醒APP的需求,我們通常只能使用scheme。但是這種方式需要提前判斷系統中是否安裝了能夠響應此scheme的app,並且這種方式在微信中是被禁用了的。

Universal Links是iOS9推出的一項功能,使你的應用可以通過傳統的HTTP連結來啟動APP(如果iOS裝置上已經安裝了你的app,不管在微信裡還是在哪裡), 或者開啟網頁(iOS裝置上沒有安裝你的app)。

下面簡單說下怎麼使用Universal Links,具體的可以看官方的說明文件

怎麼使用Universal Links

1.先決條件:你必須有一個域名,且這個域名需要支援https。

2.需要在開發者中心做配置:找到對應的App ID,在Application Services列表裡有Associated Domains一條,把它變為Enabled就可以了。

111608265-fc8dfd8dbab131b6
配置App ID支援Associated Domains

3.開啟工程配置中的Associated Domains,在其中的Domains中填入你想支援的域名,必須以applinks:為字首。

121608265-6e3f53186f74a1fd
配置專案中的Associated Domains

4.建立一個json格式的檔案,蘋果將會在合適的時候,從我們在專案中填入的域名請求這個檔案。這個檔名必須為apple-app-site-association,沒有字尾名:

說明:

appID:組成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陸開發者中心,在Account – Membership裡面可以找到Team ID。

paths:設定你的app支援的路徑列表,只有這些指定的路徑的連結,才能被app所處理。星號的寫法代表了可識別域名下所有連結。

這篇部落格裡有很多其他公司的例子,可以參考一下。

5.上傳該檔案到你的域名所對應的根目錄或者.well-known目錄下,這是為了蘋果能獲取到你上傳的檔案。上傳完後,自己先訪問一下,看看是否能夠獲取到,當你在瀏覽器中輸入這個檔案連結後,應該是直接下載apple-app-site-association檔案。

驗證

在iOS裝置中的備忘錄中輸入App能識別的連結,然後直接點選此連結,就會直接跳轉到你的app了。或是長按,在出現的彈出選單中第二項是在’XXX’中開啟,這也代表著成功:

131608265-a9c2e6fd884a88e8
出現選單

或是你將要測試的網址在safari中開啟,在出現的網頁上方下滑,可以看到有在”XX”應用中開啟

141608265-a7f64aa8f3ad665d
出現選單

在微信的網頁瀏覽器中也是可以的,雖然微信遮蔽了所有的scheme方式跳轉到其它app,但是Universal Links是由系統直接處理的,微信遮蔽不了,這也就實現了從微信跳轉到我們的app。

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

151608265-67e0333a4815fcf0
驗證連結

進入app後的處理

現在使用者點選某個連結,直接可以進我們的app了,但是我們的目的是要能夠獲取到使用者進來的連結,根據連結來展示給使用者相應的內容。
我們需要在工程裡的 AppDelegate 裡實現方法

好了先說到這裡,如果遇到什麼問題可以詳細看官方的說明文件

相關文章