iOS 通用鏈接(Universal Link)配置詳解
iOS 通用鏈接(Universal Link)配置
什么是通用鏈接?
通用鏈接是iOS9推出的一項(xiàng)新功能,如果你的應(yīng)用(app)支持通用鏈接(Universal Link)之后,iOS用戶能夠在點(diǎn)擊網(wǎng)頁(yè)的鏈接的時(shí)候無(wú)縫的重定向到已經(jīng)安裝的app,不需要額外的任何操作。如果沒有安裝對(duì)應(yīng)的app,那么點(diǎn)擊鏈接會(huì)使用Safari打開網(wǎng)頁(yè)。在iOS9以前,對(duì)于各種瀏覽器,Safari中喚醒a(bǔ)pp的需求,我們通常是只能使用scheme的方式。
為什么要突然改用通用鏈接的配置方式?
我們的項(xiàng)目中喚起第三方app一般是通過(guò)配置對(duì)應(yīng)的URL Scheme的方式使用的,微信SDK的最新版本openSDK1.8.6 由于蘋果iOS 13系統(tǒng)版本安全升級(jí),為此openSDK在1.8.6版本進(jìn)行了適配。 1.8.6版本支持Universal Links方式跳轉(zhuǎn),對(duì)openSDK分享進(jìn)行合法性校驗(yàn),提升使用過(guò)程中的安全性。
要求在注冊(cè)微信appid時(shí),必須要傳入universalLink,以前的方法在舊版本仍然可使用。所以就開始研究通用鏈接(Universal Link)的配置
@interface WXApi : NSObject /*! @brief WXApi的成員函數(shù),向微信終端程序注冊(cè)第三方應(yīng)用。 * * 需要在每次啟動(dòng)第三方應(yīng)用程序時(shí)調(diào)用。 * @attention 請(qǐng)保證在主線程中調(diào)用此函數(shù) * @param appid 微信開發(fā)者ID * @param universalLink 微信開發(fā)者Universal Link * @return 成功返回YES,失敗返回NO。 */ + (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLin
如何配置通用鏈接?
1、創(chuàng)建json格式的一個(gè)空文件(取名必須為apple-app-site-association,并且沒有后綴)
- 這里的appID是指:TeamID+BundleId的組成(例:9JA89QQLNQ.com.apple.test)(TeamID可以在開發(fā)者賬號(hào)里面查看,BundleId是項(xiàng)目的Bundle Identifier)。
- 這里的paths是指:是設(shè)置允許的路徑列表,可以是一個(gè)也可以是多個(gè),最簡(jiǎn)單的方式是使用“*”,通配符,表示允許該域名下的任意路徑。(注意:paths中的大小寫是敏感的,一定要一一對(duì)應(yīng))
2、上傳apple-app-site-association文件(這里就能拿到app中配置需要的域名)
(1)將apple-app-site-association文件發(fā)給服務(wù)器端的同事,讓他上傳到域名的根目錄下或者.well-known的子目錄下(這里的域名必須要是可訪問(wèn)的域名,由服務(wù)器端的同事給到)。
(2)Web server需要支持https,客戶端通過(guò)https來(lái)訪問(wèn),并且不支持重定向。
3、在app中處理通用鏈接
(1)添加對(duì)應(yīng)的域名(上面知道的域名)到Capabilities
在項(xiàng)目里面定位到Capabilities,找到Associated Domains,點(diǎn)擊允許按鈕,在Domains中添加對(duì)應(yīng)的域名。(Domains中的域名必須是使用applinks開頭,然后輸入自己的域名即可。注意:當(dāng)app第一次啟動(dòng)之后,會(huì)自動(dòng)從你自己的域名目錄下下載這個(gè)apple-app-site-association文件。)
注:這里可能會(huì)遇到一個(gè)錯(cuò)誤就是你的App ID中并沒有允許使用Associated Domains,所以需要進(jìn)入開發(fā)者中心,編輯App ID允許Associated Domains,并且重新生成對(duì)應(yīng)的簽證文件并下載安裝。在最新xcode11,添加了該項(xiàng),開發(fā)者賬號(hào)該appId下自動(dòng)打開
(2)實(shí)現(xiàn)AppDelegate里支持通用鏈接的實(shí)現(xiàn)方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler { //自己的實(shí)現(xiàn)代碼 return [WXApi handleOpenUniversalLink:userActivity delegate:self]; }
這里如果是從舊版更新WechatOpenSDK1.8.6版本的話,需要在這個(gè)里面調(diào)用微信里的這個(gè)方法,并且在Xcode中,選擇你的工程設(shè)置項(xiàng),選中“TARGETS”一欄,在 “info”標(biāo)簽欄的“LSApplicationQueriesSchemes“添加weixin和weixinULAPI,可通過(guò)微信開放平臺(tái)的接入文檔步驟一步步進(jìn)行修改或添加。
注:這里的weixinULAPI注意大小寫,我之前是添加了一個(gè)weixinulapi小寫的進(jìn)去,結(jié)果都注冊(cè)失敗,一直沒找到原因,直到我調(diào)用微信打印log的方法,才知道是沒添加到weixinULAPI這個(gè)schemes,大小寫沒區(qū)分
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:iOS查找私有API的方法示例
欄 目:IOS
下一篇:iOS13原生端適配攻略(推薦)
本文標(biāo)題:iOS 通用鏈接(Universal Link)配置詳解
本文地址:http://mengdiqiu.com.cn/a1/IOS/11863.html
您可能感興趣的文章
- 01-11iOS常用算法之兩個(gè)有序數(shù)組合并(要求時(shí)間復(fù)雜度為0(n))
- 01-11iOS 彈幕功能的實(shí)現(xiàn)思路圖解
- 01-11iOS調(diào)試Block引用對(duì)象無(wú)法被釋放的小技巧分享
- 01-11iOS動(dòng)態(tài)更換Icon的全過(guò)程記錄
- 01-11iOS實(shí)現(xiàn)文本分頁(yè)的方法示例
- 01-11iOS常見宏理解及使用方法
- 01-11iOs遷至WKWebView跨過(guò)的一些坑
- 01-11iOS模擬中獎(jiǎng)名單循環(huán)滾動(dòng)效果
- 01-11Python一鍵查找iOS項(xiàng)目中未使用的圖片、音頻、視頻資源
- 01-11iOS中如何獲取某個(gè)視圖的截圖詳析


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11UILabel顯示定時(shí)器文本跳動(dòng)問(wèn)題的解決
- 01-11iOS常用算法之兩個(gè)有序數(shù)組合并(要
- 01-11iOS 彈幕功能的實(shí)現(xiàn)思路圖解
- 01-11詳解MacOs免密登錄CentOs操作步驟
- 01-11iOS動(dòng)態(tài)更換Icon的全過(guò)程記錄
- 01-11iOS調(diào)試Block引用對(duì)象無(wú)法被釋放的小技
- 01-11iOS常見宏理解及使用方法
- 01-11iOS實(shí)現(xiàn)文本分頁(yè)的方法示例
- 01-11iOs遷至WKWebView跨過(guò)的一些坑
- 01-11iOS模擬中獎(jiǎng)名單循環(huán)滾動(dòng)效果
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10C#中split用法實(shí)例總結(jié)