最近老大要求在App里加這個(gè)功能,于是乎就研究了一下燎窘。
網(wǎng)上可以參考的文章很多,比如:
2.Cocoachina:iOS 9學(xué)習(xí)系列:打通 iOS 9 的通用鏈接(Universal Links)
建議看官方文檔,上面會(huì)有很多注意事項(xiàng)姥闭。其他都差不多,這里只總結(jié)下需要注意的點(diǎn):
1.apple-app-site-association文件不能帶后綴越走,務(wù)必把".json"的后綴去掉棚品!有些人的電腦是隱藏文件后綴的,這要格外注意廊敌;
2.apple-app-site-association一定要傳到域名根目錄下铜跑;
3.WebServer需要支持https,且https使用有效的證書(shū)(是私密鏈接)骡澈。筆者在這里卡了很久锅纺,原因就是后臺(tái)給配的https使用無(wú)效的證書(shū),導(dǎo)致應(yīng)用安裝的時(shí)候不能正確的下載apple-app-site-association文件肋殴;
4.如果想測(cè)試這個(gè)功能囤锉,可以讓后臺(tái)搭一個(gè)測(cè)試服務(wù)器,并配置虛擬主機(jī)生成域名护锤,然后iOS這邊通過(guò)host訪問(wèn)域名就可以了官地。注意"applink:"后面寫(xiě)的一定是域名,不能是IP烙懦;
5.抓包的結(jié)果顯示驱入,網(wǎng)絡(luò)順暢的情況下,應(yīng)用會(huì)在在剛安裝(不是打開(kāi))的時(shí)候會(huì)去applink中的地址下載apple-app-site-association文件氯析,所以如果需要測(cè)試亏较,請(qǐng)保證網(wǎng)絡(luò)通暢;
6.當(dāng)所有都準(zhǔn)備好掩缓,需要測(cè)試該功能的時(shí)候雪情,只需要在記事本或短信中輸入App能識(shí)別的鏈接,然后直接點(diǎn)擊或是長(zhǎng)按就可以了拾因,直接點(diǎn)的效果是跳轉(zhuǎn)到你的App旺罢,然后右上角是“去網(wǎng)頁(yè)”的箭頭旷余,長(zhǎng)按的效果是彈出的菜單中第二項(xiàng)是“在'XXX'中打開(kāi)”,這也代表著成功扁达。直接在Safari中輸入鏈接是無(wú)效的正卧,必須從一處跳入才可以(比如上一級(jí)網(wǎng)頁(yè))。
7.蘋(píng)果有個(gè)網(wǎng)址(這里)可以檢測(cè)你的apple-app-site-association是否是有效的跪解,準(zhǔn)備好了可以測(cè)試一下炉旷。
8.測(cè)試的時(shí)候,建議使用dev證書(shū)打包叉讥,之后安裝到手機(jī)上測(cè)試功能窘行。未安裝應(yīng)用的情況下直接在手機(jī)上跑好像也是可以的,因?yàn)樽サ竭^(guò)請(qǐng)求图仓。
9.如果你有問(wèn)題罐盔,但上面沒(méi)有列出,Stackoverflow上面有個(gè)問(wèn)題救崔,可以看下其他人的建議惶看。
可能寫(xiě)的有出入或是不全,歡迎大家補(bǔ)充六孵。
更新:
1.如果需要支持此功能纬黎,需要在開(kāi)發(fā)者中心做配置。具體是這樣:開(kāi)發(fā)者中心->Identitiers->App IDs->需要支持的應(yīng)用App ID劫窒,在Application Services列表里有Associated Domains一條本今,把它變?yōu)镋nabled就可以了。參考下圖
2.當(dāng)你在項(xiàng)目targets->Capabilities->Associated Domains中配置app link之后主巍,系統(tǒng)會(huì)自動(dòng)幫你寫(xiě)入.entitlements文件冠息,所以不需要自己去手動(dòng)加。需要注意的是煤禽,有人遇到過(guò).entitlements文件沒(méi)有被加入工程的铐达,這也會(huì)產(chǎn)生問(wèn)題,需要手動(dòng)把.entitlements加入工程檬果。
3.apple-app-site-association文件里有個(gè)paths字段瓮孙,這個(gè)是用來(lái)控制可識(shí)別鏈接的,星號(hào)的寫(xiě)法代表了可識(shí)別域名下所有鏈接选脊。這篇博客里有很多其他公司的例子杭抠,可以參考一下。