目錄
一、什么是 Universal Link?
1.背景介紹
2.特點
3.運行機制原理&流程圖
二、配置教程
1.第一步:開啟 Associated Domains 服務(wù)
1.1 開通 Associated Domains
2.第二步:服務(wù)器配置 apple-app-site-association(AASA) 文件
2.1 創(chuàng)建?apple-app-site-association?文件
2.2 將?apple-app-site-association?文件上傳到服務(wù)器
2.3 校驗 AASA 文件的有效性
2.3.1?三方工具(推薦使用)
2.3.2?官網(wǎng)(不好用)
3.第三步:配置 Associated Domains(域名)
3.1 在 Xcode 中配置
3.2 在 HBuilderX 中配置
4.第四步:驗證通用連接(Universal Link)是否配置正確
4.1 在 Safari 輸入 Universal Links
4.2 在 iOS 原生備忘錄上,輸入 Universal Links
我按照大佬的操作都完成了,服務(wù)端給的地址也都驗證通過,我前端配置也都ok,就是不跳轉(zhuǎn),最后發(fā)現(xiàn)是手機緩存問題,重啟手機后,再重試就好了。
底部文章是來自一個大佬的博客總結(jié)的內(nèi)容:
瑾瑾的技術(shù)分享博客
一、什么是 Universal Link?
1.背景介紹
-
Universal Link 是蘋果在 WWDC 2015 上提出的 iOS 9 的新特性之一。此特性類似于深層鏈接,并能夠方便地通過打開一個 Https 鏈接來直接啟動您的客戶端應(yīng)用(手機有安裝 App)。對比以往所使用的 URLSheme,這種新特性在實現(xiàn) web-app 的無縫鏈接時,能夠提供極佳的用戶體驗。使用前請閱讀蘋果官方文檔 - Support Universal Links
-
由于蘋果 iOS 13 系統(tǒng)版本安全升級,微信 SDK1.8.6 版本要求支持 Universal Links 方式跳轉(zhuǎn),以便進行合法性校驗,提升安全性。詳情請參考微信官方文檔 - iOS 接入指南
2.特點
-
Universal Link 可以無縫鏈接到 app 或網(wǎng)頁,主要應(yīng)用場景有內(nèi)容分享和廣告投放。它有如下特點:
- 如果安裝了 app,會直接打開 app,并定位到內(nèi)容頁;
- 如果沒有安裝 app,使用瀏覽器打開該鏈接;
3.運行機制原理&流程圖
- 當 App 初次安裝后或者更新版本后的第一次啟動(第二次啟動就不會),向工程配置的?
applinks:
?的域名請求?apple-app-site-association
?配置文件; - App 自動的將?
apple-app-site-association
?配置文件向 iOS 系統(tǒng)配置; - 當任何 WebView 發(fā)起 UniversalLink 的 url 的時候,系統(tǒng)遍歷注冊過的通用鏈接,如果命中則直接打開 App 觸發(fā) Delegate 方法;如果沒命中,WebView 繼續(xù)跳轉(zhuǎn)加載 url。
- 以上都是系統(tǒng)默默替你做的,我們要做的就是確保配置的正確性。
二、配置教程
1.第一步:開啟 Associated Domains 服務(wù)
1.1 開通 Associated Domains
-
登錄蘋果開發(fā)者中心,在“Certificates, Identifiers & Profiles(證書、標識符和描述文件)”頁面選擇“Identifiers(標識符)”
-
在“Identifiers(標識符)”選項下,添加或選擇對應(yīng)的 App ID
-
勾選 Associated Domains 并保存,一定要確保開啟 Associated Domains 服務(wù)
重要提示:開啟 Associated Domains 服務(wù)后,需要重新生成 profile 文件
2.第二步:服務(wù)器配置 apple-app-site-association(AASA) 文件
AASA(apple-app-site-association)文件是一個位于?
根目錄
?或?/.well-known
?文件夾下面的 json 文件 (例如: https://your_domain/apple-app-site-association 或 https://your_domain/.well-known/apple-app-site-association),里面描述了目標 app 的信息。AASA 文件和 entitlements 為網(wǎng)站和 app 提供了互相認證的機制。
2.1 創(chuàng)建?apple-app-site-association
?文件
-
需要創(chuàng)建一個?
apple-app-site-association
?文件,必須命名為?apple-app-site-association
,切記沒有后綴,有些人的電腦是隱藏文件后綴的,務(wù)必把?.json
?后綴去掉!1
touch apple-app-site-association
-
文件內(nèi)添加 json 格式數(shù)據(jù),內(nèi)容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{ "applinks": { "apps": [], // apps:是限制只能在這幾個app中使用,基本上不填寫,所以是空數(shù)組 "details": [ // 可以配置一個,也可配置多個 { "appID": "9JA89QQLNQ.com.apple.wwdc", // appID:是由TeamId + . + BundleId組成 "paths": ["*"] // paths:設(shè)定你的app支持的路徑列表,只有這些指定路徑的鏈接,才能被app所處理。"*"的寫法代表了可識別域名下所有鏈接 }, { "appID": "ABCD1234.com.apple.wwdc", "paths": ["/app/*", "/qq_conn/appid/*"] // "/app/*"是自己定義的路徑;"/qq_conn/appid/*"需要根據(jù)QQ互聯(lián)平臺設(shè)置,appid是QQ互聯(lián)后臺對應(yīng)應(yīng)用的APPID } ] } }
2.2 將?apple-app-site-association
?文件上傳到服務(wù)器
-
你的服務(wù)器必須支持 HTTPS 協(xié)議,并且擁有該域名下上傳到根目錄的權(quán)限;
-
將這個文件上傳到你的服務(wù)器,可以將這個文件放到服務(wù)器的?
根目錄
?下,也可以放到?.well-known
?這個子目錄下,這是為了蘋果能獲取到你上傳的文件; -
該文件的?
content-type
?需要設(shè)置成?application/json
,可以直接在 oss 上進行修改; -
上傳完成后,對應(yīng)的鏈接分別為
https://xxx/apple-app-site-association
或https://xxx/.well-known/apple-app-site-association
(xxx 為服務(wù)端的域名),然后試著訪問一下,看看是否能夠獲取到,當你在瀏覽器中輸入這個文件鏈接后,出現(xiàn)下圖就可以了:
2.3 校驗 AASA 文件的有效性
- AASA 文件的格式和命名會直接影響到 iOS 系統(tǒng)能否正常拉取、識別里面的內(nèi)容,現(xiàn)在有一些工具可以校驗 AASA 文件有效性:
2.3.1?三方工具(推薦使用)
2.3.2?官網(wǎng)(不好用)
3.第三步:配置 Associated Domains(域名)
3.1 在 Xcode 中配置
Xcode 版本:Version 14.2 (14C18)
-
在 Xcode 中打開項目,選擇目錄中的?
xxx.xcodeproj
(xxx 通常為項目名稱),在?xxx.xcodeproj -> Signing&Capabilites -> Capability -> Associated Domains
?這個路徑下進行配置; -
然后雙擊?
Associated Domains
,即可在 Xcode 中對 Associated Domains 進行配置,如果?Capability
?中已經(jīng)存在?Associated Domains
,那么直接配置即可; -
在 Associated Domains 里面配置的 Universal Links,必須以?
applinks:
?為前綴,格式為:applinks:+配置的域名
,例如:applinks:test.com
3.2 在 HBuilderX 中配置
HBuilderX 版本:3.8.4
-
打開 HBuilderX 并選擇對應(yīng)的項目,找到?
manifest.json
,在?App常用其它設(shè)置
?中找到“iOS 設(shè)置”下的?關(guān)聯(lián)域(Associated Domains)
進行配置; -
或者打開項目的?
manifest.json
?文件,切換到“源碼視圖”項,在 uni-app 項目在?app-plus -> distribute -> ios -> capabilities -> entitlements
?節(jié)點下添加?com.apple.developer.associated-domains
?字段,字段值為字符串數(shù)組,每個字符串為要關(guān)聯(lián)的域名;1 2 3 4 5 6 7
"capabilities": { "entitlements": { "com.apple.developer.associated-domains": [ "applinks:xxx.xxx.com" ] // xxx.xxx.com 是應(yīng)用通用鏈接的域名(這里不要包含path),請修改為自己應(yīng)用要使用的域名 } }
-
保存后提交云端打包生效;
注意:在 Associated Domains 里面配置的 Universal Links 必須要以?
applinks:
?開頭,后面寫上域名,例如:applinks:test.com
4.第四步:驗證通用連接(Universal Link)是否配置正確
注意:測試時,手機上必須安裝你需要跳轉(zhuǎn)的應(yīng)用并配置 Associated Domains
4.1 在 Safari 輸入 Universal Links
- 在這個鏈接的頁面頂部能看到“在 xxx APP 中打開”字樣,點擊“打開”按鈕可以打開 app;
4.2 在 iOS 原生備忘錄上,輸入 Universal Links
- 如果輸入的 Universal Links 是能識別的鏈接,那么點擊鏈接看看是否可以直接跳轉(zhuǎn)到 app;
- 或者長按該鏈接,看看彈出的菜單中是否有“在 xxx 中打開”,這都代表著成功了;
文章來源:http://www.zghlxwxcb.cn/news/detail-757120.html
注意:服務(wù)器上?
apple-app-site-association
?的更新不會讓 iOS 本地的?apple-app-site-association
?同步更新,即 iOS 一般只會在 APP 下載完后初次啟動才會下載這個文件,所以如果修改了?apple-app-site-association
?文件,請刪除 APP 后重新下載。文章來源地址http://www.zghlxwxcb.cn/news/detail-757120.html
到了這里,關(guān)于iOS 配置通用鏈接(Universal Link)服務(wù)端和開發(fā)者后臺都配置好了,還是跳轉(zhuǎn)不到App的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!