iOS 通用連接(Universal Link)

**Apple通用連接:**一種可以方便的經過傳統 HTTP 連接來啓動 APP, 使用相同的網址打開網站和APP。json

經過惟一的網址, 不須要特別的schema就能夠連接一個特定的視圖到APP裏面 。跨域

好比:在微信中使用了通用連接, 那麼用戶在Safari、UIWebView或者 WKWebView點擊一個連接, iOS設備上的微信app怎會在微信裏面自動打開這個頁面, 若是沒有安裝則在Safrai中打開響應連接瀏覽器

1、系統要求:

iOS 9及以上系統,iOS 9如下仍舊用URL Scheme實現跳轉。安全

2、使用方法:

  1. 蘋果開發者網站中打開須要使用Universal Link功能的App中的Associated Domains
  2. 建立一個json格式的apple-app-site-associatio,上傳apple-app-site-association到服務器根目錄下。
  3. AppDelegate中實現相應的方法。

3、對比URL Scheme

  1. 其餘應用跳轉到App或App對應界面,或跳轉到其餘App仍舊使用URL Scheme
  2. Universal Link適用於App跳轉功能,且待跳轉功能配置文件存儲在服務器,更加靈活。
  3. App已經安裝的前提下:直接啓動App而後現實連接內容。
  4. App沒有安裝的前提下:Web上繼續顯示連接內容。

4、參數以及安全性

  1. 因爲路徑徹底是自定義的,自由度很高,能夠經過拼接路徑的方式帶參數;例如/path/x/parameter。
  2. 未安裝App會直接在瀏覽器中繼續打開連接,所以不可以帶敏感信息

5、注意點

  1. 首先你的服務器必須得支持SSL,必須支持HTTPS;咱們只須要把配置好的json文件上傳到服務器中該域名的根目錄下,言下之意,咱們能夠用GET請求能夠獲取到https://www.example.com/apple-app-association;當咱們的App在設備上第一次運行時,若是支持Associated Domains功能,那麼iOS會自動去GET定義的Domain下的apple-app-site-association文件。
  2. 服務器上apple-app-site-association的更新不會讓iOS本地的apple-app-site-association同步更新,即iOS只會在App第一次啓動時請求一次,之後除非App更新或從新安裝,不然不會在每次打開時請求apple-app-site-association。
  3. 非系統原生App不必定能支持直接點擊URL跳轉,例如在微信中點擊URL會首先在微信內的WebView打開,若是要跳轉只能再經過Safari打開。
  4. 從9.3.X改版以後,通用連接不支持域內跳轉了,跳轉先後的兩個domain必須是不一樣的,不然只會safari打開。跨域問題:假設當前網頁的地址爲 yoursite.com/a/*,若是要跳轉的鏈… yoursite.com/a/* 這個域下的,系統將不會進行拉起應用的操做,必需要跳轉不一樣的子域,例如 yoursite.com/b/* 時,系統纔會根據關聯文件去判斷是否要拉起應用。
相關文章
相關標籤/搜索