iOS 9 通用鏈接(Universal Links)

最近老大要求在App里加這個(gè)功能,于是乎就研究了一下。

網(wǎng)上可以參考的文章很多,比如:

1.官方文檔

2.Cocoachina:iOS 9學(xué)習(xí)系列:打通 iOS 9 的通用鏈接(Universal Links)

3.一篇不錯(cuò)的博客

建議看官方文檔,上面會(huì)有很多注意事項(xiàng)。其他都差不多,這里只總結(jié)下需要注意的點(diǎn):

1.apple-app-site-association文件不能帶后綴,務(wù)必把".json"的后綴去掉!有些人的電腦是隱藏文件后綴的,這要格外注意;

2.apple-app-site-association一定要傳到域名根目錄下;

3.WebServer需要支持https,且https使用有效的證書(是私密鏈接)。筆者在這里卡了很久,原因就是后臺(tái)給配的https使用無效的證書,導(dǎo)致應(yīng)用安裝的時(shí)候不能正確的下載apple-app-site-association文件;

4.如果想測試這個(gè)功能,可以讓后臺(tái)搭一個(gè)測試服務(wù)器,并配置虛擬主機(jī)生成域名,然后iOS這邊通過host訪問域名就可以了。注意"applink:"后面寫的一定是域名,不能是IP;

5.抓包的結(jié)果顯示,網(wǎng)絡(luò)順暢的情況下,應(yīng)用會(huì)在在剛安裝(不是打開)的時(shí)候會(huì)去applink中的地址下載apple-app-site-association文件,所以如果需要測試,請(qǐng)保證網(wǎng)絡(luò)通暢;

6.當(dāng)所有都準(zhǔn)備好,需要測試該功能的時(shí)候,只需要在記事本或短信中輸入App能識(shí)別的鏈接,然后直接點(diǎn)擊或是長按就可以了,直接點(diǎn)的效果是跳轉(zhuǎn)到你的App,然后右上角是“去網(wǎng)頁”的箭頭,長按的效果是彈出的菜單中第二項(xiàng)是“在'XXX'中打開”,這也代表著成功。直接在Safari中輸入鏈接是無效的,必須從一處跳入才可以(比如上一級(jí)網(wǎng)頁)。

7.蘋果有個(gè)網(wǎng)址(這里)可以檢測你的apple-app-site-association是否是有效的,準(zhǔn)備好了可以測試一下。

8.測試的時(shí)候,建議使用dev證書打包,之后安裝到手機(jī)上測試功能。未安裝應(yīng)用的情況下直接在手機(jī)上跑好像也是可以的,因?yàn)樽サ竭^請(qǐng)求。

9.如果你有問題,但上面沒有列出,Stackoverflow上面有個(gè)問題,可以看下其他人的建議。

可能寫的有出入或是不全,歡迎大家補(bǔ)充。


更新:

1.如果需要支持此功能,需要在開發(fā)者中心做配置。具體是這樣:開發(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)幫你寫入.entitlements文件,所以不需要自己去手動(dòng)加。需要注意的是,有人遇到過.entitlements文件沒有被加入工程的,這也會(huì)產(chǎn)生問題,需要手動(dòng)把.entitlements加入工程。

3.apple-app-site-association文件里有個(gè)paths字段,這個(gè)是用來控制可識(shí)別鏈接的,星號(hào)的寫法代表了可識(shí)別域名下所有鏈接。這篇博客里有很多其他公司的例子,可以參考一下。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容