ios9 通用鏈接:一種能夠方便的通過傳統(tǒng) HTTP 鏈接來啟動 APP, 使用相同的網(wǎng)址打開網(wǎng)站和 APP。
通用鏈接的作用在于唠叛,當(dāng)你訪問一個(gè)網(wǎng)頁地址的時(shí)候硫豆,如果沒有安裝app饭冬,正常跳轉(zhuǎn)到網(wǎng)頁嘀韧,如果有安裝某個(gè)配置了該域名的app,則喚醒到app中顯示绝淡,以此達(dá)到更好的體驗(yàn)宙刘。
在使用通用鏈接前,咱們需要一個(gè)額外的準(zhǔn)備够委,就是一個(gè)支持https訪問的域名荐类。
ok,現(xiàn)在準(zhǔn)備開始了茁帽。
一.首先在上述準(zhǔn)備的網(wǎng)址根目錄上傳一個(gè)json文件玉罐,文件名為apple-app-site-association(不帶后綴),即使用一下地址可以訪問到該文件(其中xxxx表示你的域名潘拨,注意是域名不是ip地址)吊输。
然后說一下文件內(nèi)的json內(nèi)容
{
"applinks": {
"apps": [],
"details": {
"Team ID.Bundle ID": {
"paths":[ "*" ]
}
}
}
}
其中Team ID在https://developer.apple.com中查看,Bundle ID就是應(yīng)用的Bundle ID铁追。paths鍵則是設(shè)定允許的路徑列表且路徑區(qū)別大小寫, 或如果你只想打開APP而不管路徑則寫一個(gè)星號就可以季蚂。
二.設(shè)置APP的Associated Domains
首先需要在https://developer.apple.com/中的APP IDs里啟用Associated Domains。修改了APP ID后記得要更新配置文件琅束。
接著在工程中Target-Capabilities中也啟用Associated Domains扭屁,然后添加支持跳轉(zhuǎn)的URL,一般寫你的域名applinks:xxxx或者其他的子域名涩禀。
三.重新打包運(yùn)行之后料滥,嘗試在手機(jī)的備忘錄中輸入https://xxxx。然后點(diǎn)擊鏈接看能否跳轉(zhuǎn)到你的應(yīng)用艾船。
最后葵腹,我們看下在AppDelegate通用鏈接喚起app時(shí)的回調(diào)
-(BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler
{
if([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"從通用鏈接打開" message:userActivity.webpageURL.absoluteString
delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
[alert show];
}
return YES;
}