什么是 Universal Links
在開發中我們需要從瀏覽器,Safari中去喚醒App,iOS 9之前我們通過配置scheme從而實作這種跳轉,但是這種方式需要提前判斷系統中是否安裝了能夠回應對應scheme的app,這種方式在微信中是被禁用的,
Universal Links是iOS 9推出的一項功能,我們可以通過配置Universal Links使用戶能夠通過一個鏈接進入app或者指定頁面,這個不會被微信禁用,
組態檔
- 首先我們需要有一個支持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所處理,*的寫法代表了可識別域名下所有鏈接,
- 將這個檔案上傳到你的域名對應的根目錄或者.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,
驗證是否有效
配置一個該域名下可以訪問的鏈接地址,然后復制該鏈接到Safari中直接訪問,然后在出現的網頁中下拉,當出現在“XXX”App中打開即可
在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時就會呼叫上面的方法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/1315.html
標籤:其他
