從iOS9之后润脸,蘋果就推出了這個(gè)功能,用來喚醒外部app桑腮。這個(gè)功能在那些電商app上使用尤其廣泛泉哈,當(dāng)你打開對應(yīng)的h5網(wǎng)頁后,上面跳出一個(gè)是否跳轉(zhuǎn)app的按鈕破讨。
現(xiàn)在iOS11已經(jīng)基本覆蓋,iOS12也馬上就要發(fā)布了奕纫,這算是一個(gè)很成熟的服務(wù)了提陶,所以對接一下,也十分必要匹层。
在這個(gè)功能推出之前隙笆,iOS這邊基本都用url scheme做app間的通信锌蓄,這個(gè)功能在企鵝系應(yīng)用中直接被屏蔽,在其他應(yīng)用中使用的也不少撑柔。但是瘸爽,這個(gè)會(huì)產(chǎn)生很多問題,應(yīng)為url scheme不唯一铅忿,用戶可以隨便自定義這個(gè)url scheme剪决。之前單位做應(yīng)用的時(shí)候變碰到過這個(gè)問題,裝了另外一個(gè)app之后檀训,用urlscheme喚醒我的app的時(shí)候柑潦,喚醒了別的app,這個(gè)便是由于url scheme沖突造成的問題峻凫。unviersal links 由于域名的唯一性渗鬼,便不會(huì)產(chǎn)生這個(gè)問題。
下面我們來說一下具體對接過程
1.在xcode中開啟Associated Domians服務(wù)
路徑:Target->Capbilities->Associated Domians
之前看有人說荧琼,需要先在開發(fā)者賬號(hào)中開啟這個(gè)服務(wù)譬胎,實(shí)際上你只要在工程中打開這個(gè)服務(wù),然后build一下命锄,開發(fā)者那邊自動(dòng)會(huì)開啟這個(gè)服務(wù)银择。
在domains里面添加你需要的鏈接。
a.必須以applinks作為開頭
b.該鏈接的服務(wù)器必須支持ssl
2.填寫apple-app-site-association文件
這是一個(gè)json格式的文件累舷,但是文件名不能有后綴
在這個(gè)文件里 可以配置多個(gè)appID,appID的格式為你該工程所在的team的teamID+你的工程ID-->>T1212JGF.com.xxx.xxx
具體的可以在開發(fā)者賬號(hào)的Account -> Membership -> Team ID 查看
paths里面可以配置所有你需要響應(yīng)的鏈接浩考。
比如你在applinks里配置了www.baidu.com,你現(xiàn)在需要打開www.baidu.com就能喚醒a(bǔ)pp被盈,那你可以直接寫''/*".
你需要在某幾個(gè)特定的鏈接下喚醒a(bǔ)pp析孽,那就在paths里面填寫你那特定的鏈接。paths里面可以填寫多個(gè)鏈接
3. 把a(bǔ)pple-app-site-association文件傳到applinks的根目錄下只怎。
比如你applinks為www.baidu.com袜瞬。那就將后臺(tái)把這個(gè)文件傳到這個(gè)目錄下。當(dāng)你訪問www.baidu.com/apple-app-site-association這個(gè)鏈接的時(shí)候身堡,能成功的下載這個(gè)文件邓尤,那就說明成功了。
4.工程中配置
在工程APPdelegate中添加對于該服務(wù)的響應(yīng)代碼贴谎,這里可以對該鏈接是否跳轉(zhuǎn)進(jìn)行控制汞扎。
<pre style="margin: 0px; padding: 0px; overflow: auto; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler{ if([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]){
NSURL *url = userActivity.webpageURL;
} return YES;
}</pre>
5. 測試
在safari中打開對應(yīng)的鏈接
當(dāng)你打開鏈接,然后下拉擅这,出現(xiàn)該多出的頁面澈魄,那么恭喜你,你成功了仲翎。點(diǎn)擊打開按鈕痹扇,你就能跳轉(zhuǎn)到你需要的頁面了铛漓。