iOS 配置Universal Link

http://m.itdecent.cn/p/616dab3f3f81

步驟一 創(chuàng)建apple-app-site-association文件

在文本編輯器中創(chuàng)建一個內(nèi)容為json格式的文件,蘋果將會在app安裝的的時候,從我們在項目中填入的域名請求這個文件。

例子:

{"applinks":{"apps":[],"details":[{"appID":"9JA89QQLNQ.com.apple.wwdc","paths":["/wwdc/news/","/videos/wwdc/2015/*"]}]}}

說明:

appId:組成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陸開發(fā)者中心,在Account -> Membership里面可以找到Team ID。

paths:1.使用指定整個網(wǎng)站

2.包括一個特定的URL,例如/ wwdc / news /,以指定一個特定的鏈接

3.將

附加到特定的網(wǎng)址(例如/ videos / wwdc / 2015 /),以指定網(wǎng)站的一部分

4.除了使用

匹配任何子字符串外,還可以使用?匹配任何單個字符。您可以將兩個通配符合并在一個路徑中,例如/ foo / * / bar / 201?/ mypage。

5.用于在path數(shù)組中指定網(wǎng)站路徑的字符串區(qū)分大小寫。

!注意

這個文件名必須為apple-app-site-association,切記沒有后綴名。不要將.json附加到apple-app-site-association文件名。

如果您的應(yīng)用程序在iOS 9或更高版本中運(yùn)行,并且您使用HTTPS來提供apple-app-site-association文件,則可以創(chuàng)建一個使用application / json MIME類型的純文本文件,而無需對其進(jìn)行簽名。如果您在iOS 8中支持交接和共享Web憑據(jù),則仍然需要按照共享Web憑據(jù)參考中的說明對文件進(jìn)行簽名。

如果copy這個結(jié)構(gòu)需要檢查是否有中文標(biāo)點(diǎn)符號。

寫完之后在效驗json的網(wǎng)站中驗證json結(jié)構(gòu)是否正確。

步驟二 將創(chuàng)建的apple-app-site-association文件上傳到服務(wù)器

上傳該文件到你的域名所對應(yīng)的根目錄或者.well-known目錄下,這是為了蘋果能獲取到你上傳的文件。

!注意

當(dāng)你在瀏覽器中輸入這個文件鏈接后,直接能看到對應(yīng)的json數(shù)據(jù),而不是下載。

下面是淘寶和微信的測試配置文件,打開自己配置的文件打開應(yīng)該是相對應(yīng)的樣式。

https://b.mashort.cn/apple-app-site-associationhttps://help.wechat.com/apple-app-site-association

這個需要后臺配合,將文件重定向來達(dá)到這個目的。具體需要后臺來操作。

步驟三 appIDs配置和項目配置

1.開發(fā)者中心配置:找到對應(yīng)的App ID,在Application Services列表里有Associated Domains一條,把它變?yōu)镋nabled就可以了。

圖片.png

2.工程配置中相應(yīng)功能:targets->Signing&Capabilites->Capability->Associated Domains,在其中的Domains中填入你想支持的域名,也必須必須以applinks:為前綴。

圖片.png

圖片.png

!注意

1.Domains添加的域名沒有https或者h(yuǎn)ttp,以www開頭

步驟四 驗證是否配置成功,成功后跳轉(zhuǎn)指定頁面

你將要配置的網(wǎng)址在Safari中打開,在出現(xiàn)的網(wǎng)頁上方下滑,可以看到有在”XX”應(yīng)用中打開:

圖片.png

!注意

如果你在apple-app-site-association文件中的paths中配置的是指定路徑,需要在域名后面拼接指定路徑

當(dāng)點(diǎn)擊某個鏈接,直接可以進(jìn)我們的app了,但是我們的目的是要能夠獲取到用戶進(jìn)來的鏈接,根據(jù)鏈接來展示給用戶相應(yīng)的內(nèi)容。

我們需要在工程里的實現(xiàn)AppDelegate里對應(yīng)的方法:

-(BOOL)application:(UIApplication*)application continueUserActivity:(NSUserActivity*)userActivity restorationHandler:(void(^)(NSArray*_Nullable))restorationHandler{NSLog(@"userActivity : %@",userActivity.webpageURL.description);returnYES;}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容