什麼是 Universal Links
在開發中咱們須要從瀏覽器,Safari中去喚醒App,iOS 9以前咱們經過配置scheme從而實現這種跳轉,可是這種方式須要提早判斷系統中是否安裝了可以響應對應scheme的app,這種方式在微信中是被禁用的。
Universal Links是iOS 9推出的一項功能,咱們能夠經過配置Universal Links使用戶可以經過一個連接進入app或者指定頁面,這個不會被微信禁用。
javascript
配置文件
- 首先咱們須要有一個支持Https的域名,必須支持Https
- 建立一個內容爲Json格式的文件,文件名爲apple-app-site-association,沒有後綴名,文件內容以下:
{ "applinks": { "apps": [], "details": [ { "appID": "2DNT4K53X5.com.apple.app", "paths": [ "*" ] } ] } }
appID組成:TeamId.your app’s bundle identifier。這裏我隨意填的,2DNT4K53X5表示你app的TeamId,com.apple.app表示app的bundle identifier
paths組成:設定你的app支持的路徑列表,只有這些指定的路徑的連接,才能被app所處理。*的寫法表明了可識別域名下全部連接。
java
- 將這個文件上傳到你的域名對應的根目錄或者.well-known目錄下,這樣IOS將會在合適的時候,從該域名請求這個文件。咱們能夠本身測試,即打開 域名/apple-app-site-association ,看看咱們能不可以下載到對應的文件。
- 而後咱們須要在app中進行相關配置。以前咱們須要在對應App Id的Application Services列表中加入Associated Domains,使它變成Enabled。如今Xcode會幫咱們自動配置,咱們只須要在項目中加入Associated Domains,而後在Domains中加入相應連接,以下圖:
Domains中加入的連接,必須以 applinks:開頭,而後去除你的域名前的Https以及最後的/,例如你的域名是https://www.apple.wwdc.com/,那麼Domains中加入的就是applinks:www.apple.wwdc.com。web
驗證是否有效
配置一個該域名下能夠訪問的連接地址,而後複製該連接到Safari中直接訪問,而後在出現的網頁中下拉,當出如今「XXX」App中打開便可json
在AppDelegate處理Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler { if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { NSURL *webpageURL = userActivity.webpageURL; NSString *host = webpageURL.host; if ([host isEqualToString:@"××××.mingpao.com"]) { //判斷域名是本身的網站,進行咱們須要的處理 }else{ [[UIApplication sharedApplication]openURL:webpageURL]; } } return YES; }
當用Universal Links啓動APP時就會調用上面的方法。瀏覽器