iOS通用連接(Universal Links)使用教程

什麼是 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時就會調用上面的方法。瀏覽器

相關文章
相關標籤/搜索