公司最近要求APP適配航闺,在微信上支持用Universal Link(通用鏈接)跳轉(zhuǎn)到APP脆粥,所以搗鼓了許久終于實(shí)現(xiàn)了該功能软棺。此篇文章就簡(jiǎn)單記錄下細(xì)節(jié)點(diǎn)红竭。
實(shí)現(xiàn)的基本要求
1、微信SDK1.8.6.1版本開始支持
2、微信版本7.07及以上
3茵宪、iOS版本12及以上
4斥黑、需要至少兩個(gè)一級(jí)域名。
5眉厨、H5頁(yè)面的按鈕鏈接在配置文件的白名單范圍內(nèi)
實(shí)現(xiàn)流程:
1、APP適配通用鏈接
2兽狭、微信開發(fā)者賬號(hào)添加通用鏈接
3憾股、服務(wù)器處理
1、APP適配通用鏈接
至于如何適配不詳細(xì)說箕慧,簡(jiǎn)書上有很多這方面的教程服球。在此放個(gè)快捷門:iOS快速配置Universal Links
需要注意的點(diǎn):
1、apple-app-site-association文件名是固定的颠焦,且沒有后綴名
2斩熊、apple-app-site-association文件內(nèi)容格式固定,details前面照抄就行伐庭,如果有多個(gè)APP粉渠,直接在details數(shù)組里面寫多個(gè)字典,一個(gè)字典代碼一個(gè)APP圾另。appID:teamID.APPBundleID霸株,paths可以寫多個(gè)路徑,打開某個(gè)路徑集乔,關(guān)閉某個(gè)子路徑(NOT /subPaths)
{
"applinks": {
"apps": [],
"details": [
{
"appID": "7A4FDG.com.aaa.app",
"paths": [ "*" ]
}
]
}
}
3去件、apple-app-site-association文件需要放置路徑的路徑有兩個(gè),沒試只放根目錄的情況扰路,直接放在兩個(gè)目錄下尤溜。
域名根目錄和.well-known目錄下
4、服務(wù)器必須支持https
5汗唱、apple-app-site-association文件放置好后宫莱,在蘋果官網(wǎng)驗(yàn)證是否配置完,輸入域名就行哩罪,不要有子路徑梢睛。官網(wǎng)驗(yàn)證
如果現(xiàn)實(shí)如下,說明配置成功了
配置成功
2识椰、微信開發(fā)者賬號(hào)添加通用鏈接
1绝葡、微信開發(fā)者上的通用鏈接必須與APP通用鏈接域名相同
2、微信開發(fā)者賬號(hào)上的通用鏈接可以有子目錄腹鹉,如果一個(gè)服務(wù)器為多個(gè)APP使用可以用子目錄區(qū)分開藏畅。
比如:https://aaa.com/music,https://aaa.com/video 可以區(qū)分做音樂和視屏的APP
3、服務(wù)器處理
1愉阎、需要兩個(gè)域名绞蹦,微信上打開的鏈接(頁(yè)面鏈接),頁(yè)面上按鈕的鏈接(點(diǎn)擊鏈接)榜旦,這兩個(gè)鏈接的域名必須不是同一個(gè)幽七,不然無(wú)法實(shí)現(xiàn)點(diǎn)擊按鈕直接跳轉(zhuǎn)。
2溅呢、按鈕鏈接域名是APP通用鏈接的域名澡屡。
跳轉(zhuǎn)現(xiàn)象:
1、頁(yè)面鏈接域名與通用鏈接域名一樣咐旧,點(diǎn)擊按鈕都不會(huì)直接喚起APP驶鹉。點(diǎn)擊微信右上角彈窗選擇“在Safari中打開”直接喚起APP。
2铣墨、頁(yè)面鏈接域名與通用鏈接域名不一樣室埋,按鈕鏈接域名與通用鏈接域名一樣,且鏈接子目錄在apple-app-site-association文件買名單范圍內(nèi)(允許跳轉(zhuǎn)的稱白名單)伊约,點(diǎn)擊按鈕可以直接喚起APP姚淆。點(diǎn)擊微信右上角彈窗選擇“在Safari中打開”不會(huì)喚起APP。
猜想
喚起情況有兩種:
微信上H5上點(diǎn)擊按鈕喚起APP是微信做的一套喚起邏輯屡律,
H5頁(yè)面右上角”在Safari中打開“走的是系統(tǒng)喚起邏輯肉盹。
提問:
1、APP何時(shí)下載apple-app-site-association文檔?
下載APP時(shí)
更新APP時(shí)
2疹尾、APP未迭代更新上忍,但apple-app-site-association文檔需要重新,APP如何才能更新到新的纳本?
卸載APP重新安裝
3窍蓝、如何更新apple-app-site-association文檔?
從根目錄下下載文件繁成,修改了再重新覆蓋上去吓笙。防止其他人也有用到。