若是你的app支持通用連接,那麼iOS 9用戶點擊連接到你的網站,能夠準確地定位到到手機安裝的你的APP應用程序,而不經過Safari去實現。若是用戶手機沒有安裝你的APP應用程序,經過通用鏈接能利用一個連接到你的網站,而不用經過在Safari打開你的網站。web
不像自定義URL schemes協議頭那樣,通用的連接不能被其餘應用程序聲稱,由於他們使用標準HTTP或HTTPS連接你的網站。json
若是iOS用戶安裝了你的應用,應用程序啓動(不是登錄)時就會檢查你上傳到web服務器json文件(apple-app-site-association),以確保你的網站容許應用程序打開url。只有你能建立和上傳這個文件,因此專門配置的網站與你的應用程序鏈接之間是安全的。數組
觸發通用鏈接時,若是用戶沒有安裝你的應用程序,點擊這個通用鏈接會打開Safari加載你的網站內容,這是用戶所指望。安全
只需一個URL就能根據用戶有沒有安裝你的APP,決定加載你的網站仍是你的APP應用程序。bash
其餘應用程序能夠與你的應用程序通訊,而不須要知道你的應用程序是否在用戶手機中安裝。服務器
文件內容以下:app
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.bundleId",
"paths": ["/mall/app_download/app","/app_download/app"]
},
{
"appID": "teamID.bundleId",
"paths": ["/path/app_download/app","/app_download/app","*"]
}
]
}
}
複製代碼
注意事項以下:dom
teamID
.bundleId
形式*
配置,則整個網站均可以使用/wwdc/news/
來指定某一個特殊的連接*
來匹配任意字符,你也可使用 ?
來匹配單個字符,你能夠在路徑當中結合這兩個字符使用,例如 /foo/*/bar/201?/mypage
.well-known
這個子目錄下。注意事項以下:網站
確保使用https://yourdomain.com/apple-app-site-association
這個連接能夠訪問到,yourdomain.com
爲你的服務器域名。ui
也可使用蘋果的驗證網站,驗證文件是否能被蘋果請求到。若是是未上線的應用,使用驗證網站時可能出現以下提示:
出現該提示爲apple-app-site-association
文件配置正確。
出現404
錯誤碼提示,則爲apple-app-site-association
文件未上傳成功,或者使用https://yourdomain.com/apple-app-site-association
路徑沒法訪問。
項目配置
在項目的Capablities
中開啓Associated domains
,以下圖:
注意事項:
domains
能夠添加多個,前綴必須爲applinks:
,applinks:
後爲你的服務器的域名。代碼接收Universal Links喚醒
在appdelegate中實現下面這個方法,當使用Universal Links喚醒app時就執行這個方法。
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webUrl = userActivity.webpageURL;
if ([webUrl.absoluteString containsString:@"?"]) {
}
}
return YES;
}
複製代碼
驗證以上配置
快捷驗證,在備忘錄中輸入https://yourdomain.com/apple-app-site-association
,長按這個連接,出現下圖提示則配置成功。