APP環(huán)境:macOS Catalina 10.15.2,Xcode 11.3,Swift 5.0
提示:本人親測(cè)有效,Universal Links 最低支持版本(Xcode 7,IOS 9)
SERVER
1.有一個(gè)注冊(cè)的域名宋距,注意:有打開(kāi)APP按鈕頁(yè)面的訪問(wèn)地址里的域名不要和這個(gè)注冊(cè)的一樣,不要放在同一個(gè)症脂!不要放在同一個(gè)谚赎!不要放在同一個(gè)!
2.支持https請(qǐng)求摊腋,并且CA證書(shū)是有效的
3.IOS工程師編寫(xiě)文件名為(apple-app-site-association)JSON文件沸版,記住不要帶文件格式!不要帶文件格式兴蒸!不要帶文件格式视粮!文件內(nèi)容為:
{
? "applinks": {
? ? "apps": [],
? ? "details": [
? ? ? {
? ? ? ? "appID": "xxxxxxxxx.Bundle Id",
? ? ? ? "paths":[ "/xxxxxx/*" ]
? ? ? }
? ? ]
? }
}
我們只需要更改appID和paths,其他的是固定的橙凳,xxxxxxxxx.Bundle Id
xxxxxxxxx是teamId獲取方式:
一.開(kāi)發(fā)蘋(píng)果開(kāi)發(fā)者網(wǎng)站查看
二.打開(kāi)電腦的鑰匙串蕾殴,查看正式的已安裝的證書(shū)名字后面會(huì)跟著括號(hào)(),括號(hào)里面的內(nèi)容就是teamId
paths是自定義的:
一.只填*代表是任何內(nèi)容
二.也可以是固定的/Test/open
三.建議是/項(xiàng)目名稱(chēng)/open岛啸,這樣比較好理解
4.apple-app-site-association文件一定要放在訪問(wèn)該域名服務(wù)器的根目錄下钓觉,例如https://www.domain.com在瀏覽器顯示出apple-app-site-association文件的內(nèi)容說(shuō)明配置成功
5.寫(xiě)個(gè)open.html文件,內(nèi)容是進(jìn)入頁(yè)面打開(kāi)itms-apps://itunes.apple.com/app/idxxxxxxxxxx?mt=8即可
6.open.html部署的請(qǐng)求地址要和apple-app-site-association文件里面配置的paths要一樣例如:paths配置的是/Test/open坚踩,那么https://www.domain.com/Test/open一定要能打開(kāi)open.html文件荡灾,先不要糾結(jié)為什么這么配置。下面是流程圖
APP
1.申請(qǐng)一個(gè)開(kāi)發(fā)者賬號(hào),申請(qǐng)證書(shū)
2.申請(qǐng)Bundle Id批幌,打開(kāi)Associated Domains
3.生成.mobileprovision文件础锐,在電腦必須確認(rèn)已經(jīng)替換.mobileprovision
4.在你想使用該功能的項(xiàng)目選中TARGETS-->Singing & Capabilities (里面的+ Capability),展示出列表選擇Associated Domains荧缘,點(diǎn)+皆警,填寫(xiě)內(nèi)容applinks:www.domain.com,applinks:是固定的截粗,www.domain.com上面提及的域名
5.代碼階段:在AppDelegate信姓,實(shí)現(xiàn)以下方法
func?application(_application:UIApplication, continue userActivity:NSUserActivity, restorationHandler:@escaping([UIUserActivityRestoring]?) ->Void) ->Bool
{
?let?absoluteString = userActivity.webpageURL?.absoluteString
//absoluteString就是https://www.domain.com/Test/open
//帶參數(shù):https://www.domain.com/Test/open?type=1
}
其他:
https://www.domain.com/Test/open可以帶參數(shù)如:
https://www.domain.com/Test/open?type=1和get請(qǐng)求帶參是一樣的,帶參數(shù)不需要改任何配置