公司最近要求APP適配,在微信上支持用Universal Link(通用鏈接)跳轉(zhuǎn)到APP,所以搗鼓了許久終于實現(xiàn)了該功能。此篇文章就簡單記錄下細(xì)節(jié)點(diǎn)。
實現(xiàn)的基本要求
1、微信SDK1.8.6.1版本開始支持
2、微信版本7.07及以上
3、iOS版本12及以上
4、需要至少兩個一級域名。
5、H5頁面的按鈕鏈接在配置文件的白名單范圍內(nèi)
實現(xiàn)流程:
1、APP適配通用鏈接
2、微信開發(fā)者賬號添加通用鏈接
3、服務(wù)器處理
1、APP適配通用鏈接
至于如何適配不詳細(xì)說,簡書上有很多這方面的教程。在此放個快捷門:iOS快速配置Universal Links
需要注意的點(diǎn):
1、apple-app-site-association文件名是固定的,且沒有后綴名
2、apple-app-site-association文件內(nèi)容格式固定,details前面照抄就行,如果有多個APP,直接在details數(shù)組里面寫多個字典,一個字典代碼一個APP。appID:teamID.APPBundleID,paths可以寫多個路徑,打開某個路徑,關(guān)閉某個子路徑(NOT /subPaths)
{
"applinks": {
"apps": [],
"details": [
{
"appID": "7A4FDG.com.aaa.app",
"paths": [ "*" ]
}
]
}
}
3、apple-app-site-association文件需要放置路徑的路徑有兩個,沒試只放根目錄的情況,直接放在兩個目錄下。
域名根目錄和.well-known目錄下
4、服務(wù)器必須支持https
5、apple-app-site-association文件放置好后,在蘋果官網(wǎng)驗證是否配置完,輸入域名就行,不要有子路徑。官網(wǎng)驗證
如果現(xiàn)實如下,說明配置成功了
配置成功
2、微信開發(fā)者賬號添加通用鏈接
1、微信開發(fā)者上的通用鏈接必須與APP通用鏈接域名相同
2、微信開發(fā)者賬號上的通用鏈接可以有子目錄,如果一個服務(wù)器為多個APP使用可以用子目錄區(qū)分開。
比如:https://aaa.com/music,https://aaa.com/video 可以區(qū)分做音樂和視屏的APP
3、服務(wù)器處理
1、需要兩個域名,微信上打開的鏈接(頁面鏈接),頁面上按鈕的鏈接(點(diǎn)擊鏈接),這兩個鏈接的域名必須不是同一個,不然無法實現(xiàn)點(diǎn)擊按鈕直接跳轉(zhuǎn)。
2、按鈕鏈接域名是APP通用鏈接的域名。
跳轉(zhuǎn)現(xiàn)象:
1、頁面鏈接域名與通用鏈接域名一樣,點(diǎn)擊按鈕都不會直接喚起APP。點(diǎn)擊微信右上角彈窗選擇“在Safari中打開”直接喚起APP。
2、頁面鏈接域名與通用鏈接域名不一樣,按鈕鏈接域名與通用鏈接域名一樣,且鏈接子目錄在apple-app-site-association文件買名單范圍內(nèi)(允許跳轉(zhuǎn)的稱白名單),點(diǎn)擊按鈕可以直接喚起APP。點(diǎn)擊微信右上角彈窗選擇“在Safari中打開”不會喚起APP。
猜想
喚起情況有兩種:
微信上H5上點(diǎn)擊按鈕喚起APP是微信做的一套喚起邏輯,
H5頁面右上角”在Safari中打開“走的是系統(tǒng)喚起邏輯。
提問:
1、APP何時下載apple-app-site-association文檔?
下載APP時
更新APP時
2、APP未迭代更新,但apple-app-site-association文檔需要重新,APP如何才能更新到新的?
卸載APP重新安裝
3、如何更新apple-app-site-association文檔?
從根目錄下下載文件,修改了再重新覆蓋上去。防止其他人也有用到。
