UniversalLink 是蘋果自iOS9.0推出的用于應用之間跳轉(zhuǎn)的一種安全認證機制汹胃,通過HTTPS鏈接來啟動APP。若手機中安裝了支持該鏈接的APP,點擊該鏈接就會直接進入到APP中。要實現(xiàn)這個機制需要進行相關(guān)的配置寡喝,具體可看蘋果官方文檔。
一勒奇、配置過程
1.域名:支持https的域名预鬓。舉例: https://example.com
2.AppID中開啟Associated Domains。Supporting Associated Domains
登錄App Developer赊颠,在對應的App ID下格二,在Capabilities列表里勾選Associated Domains劈彪,狀態(tài)變?yōu)镋nabled。同時記錄App ID Prefix (Team ID) 和 BundleID顶猜。
3.配置apple-app-site-association沧奴。
創(chuàng)建一個文件名必須為apple-app-site-association的文件,注意沒有后綴名长窄,json格式內(nèi)容如下:
{
"applinks": {
"apps": [],
"details": [ //如果有多個App需要支持Universal滔吠,details數(shù)組中可配置多個App的信息
{
"appID": "TeamID.BundleID", //自行替換TeamID和BundleID
"paths": [ "*" ] //path 過濾需要處理的地址,不需要過濾處理則配置通配符*
}
]
}
}
- appID:組成方式是 TeamID.BundleID挠日,將第二步記錄下的TeamID和BundleID進行替換疮绷。
- paths:設定App支持的路徑,只有這些設定的路徑的鏈接肆资,才能被App所處理矗愧。通配符*代表支持域名下所有鏈接。
保存內(nèi)容后將文件放在域名根目錄或.well-known下郑原。
在瀏覽器中輸入這個文件鏈接后(舉例: https://example.com/apple-app-site-association),應該可直接下載apple-app-site-association文件夜涕。
4.Xcode中配置Associated Domains犯犁。
在項目工程中配置Associated Domains,若之前沒有添加過Associated Domains女器,點擊+Capability 添加Associated Domains酸役,然后在Domains中填入該App想要支持的域名,必須以applinks:為前綴驾胆,用applinks:替換https://涣澡。
舉例,若支持通用鏈接的域名是 https://example.com丧诺,則Domains中填入的是applinks:example.com入桂。
5.驗證
可前往蘋果驗證apple-app-site-association文件是否合法有效。
在備忘錄中輸入并點擊UniversalLink 鏈接驳阎,可跳轉(zhuǎn)至App抗愁;或在Safari瀏覽器中打開 Universal Link 鏈接,下拉會出現(xiàn)App打開按鈕呵晚,點擊打開可以跳轉(zhuǎn)至App蜘腌,這樣 Universal Link 就配置成功了。
6.處理
在 AppDelegate 里實現(xiàn)方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
{
NSURL *url = userActivity.webpageURL;
//這里根據(jù)不同的URL來進行處理饵隙,拉起App后可跳轉(zhuǎn)到不同頁面
}
return YES;
}