iOS通用鏈接universalLink詳細(xì)解答

1.簡(jiǎn)介

universal是iOS9后新增的特性疮跑,通過universalLink可以快速打開APP。相較于URL scheme的方案凸舵,有如下優(yōu)點(diǎn):

  • 獨(dú)特祖娘。與自定義URL方案不同,其他應(yīng)用程序不能聲明通用鏈接啊奄,因?yàn)樗鼈兪褂弥赶蚰W(wǎng)站的標(biāo)準(zhǔn)HTTP或HTTPS鏈接渐苏。
  • 安全。當(dāng)用戶安裝您的應(yīng)用程序時(shí)菇夸,iOS會(huì)檢查您已上傳到Web服務(wù)器的文件琼富,以確保您的網(wǎng)站允許您的應(yīng)用程序代表其打開URL。只有您可以創(chuàng)建和上傳此文件庄新,因此您的網(wǎng)站與應(yīng)用程序的關(guān)聯(lián)是安全的鞠眉。
  • 靈活。即使未安裝您的應(yīng)用程序择诈,通用鏈接也可以使用械蹋。如果未安裝您的應(yīng)用程序,則按用戶期望羞芍,點(diǎn)擊指向您網(wǎng)站的鏈接可在Safari中打開內(nèi)容哗戈。
  • 簡(jiǎn)單。一個(gè)URL既適用于您的網(wǎng)站荷科,也適用于您的應(yīng)用程序唯咬。
  • 私人的。其他應(yīng)用可以與您的應(yīng)用通信畏浆,而無需知道您的應(yīng)用是否已安裝胆胰。

本次替換是因?yàn)槲⑿盘D(zhuǎn)小程序,WXOpenSDK的api必須傳universalLink校驗(yàn)刻获,所以研究了下蜀涨。

添加通用鏈接的步驟簡(jiǎn)單分為下面三步:

  • 創(chuàng)建apple-app-site-association文件,包含引用程序處理URL的JSON數(shù)據(jù)文件将鸵;
  • 將apple-app-site-association文件上傳到HTTPS Web服務(wù)器勉盅。將文件放置在服務(wù)器根目錄或.well-known子目錄中;
  • 配置APP以處理通用鏈接顶掉;

注意

通用鏈接可讓用戶在點(diǎn)擊鏈接到您的網(wǎng)站[WKWebView](https://developer.apple.com/documentation/webkit/wkwebview)以及[UIWebView](https://developer.apple.com/documentation/uikit/uiwebview)視圖和Safari頁面中的鏈接時(shí)打開您的應(yīng)用程序草娜,此外還可以鏈接到[openURL:](https://developer.apple.com/documentation/uikit/uiapplication/1622961-openurl),例如在Mail痒筒,Messages和其他應(yīng)用程序中發(fā)生的鏈接宰闰。

當(dāng)用戶在Safari中瀏覽您的網(wǎng)站時(shí)茬贵,他們點(diǎn)擊指向當(dāng)前網(wǎng)頁所在域中URL的通用鏈接,iOS會(huì)尊重該用戶最有可能的意圖并在Safari中打開該鏈接移袍。如果用戶點(diǎn)擊指向其他域中URL的通用鏈接解藻,iOS將在您的應(yīng)用中打開該鏈接。

對(duì)于運(yùn)行9.0之前的iOS版本的用戶葡盗,點(diǎn)擊指向您網(wǎng)站的通用鏈接可在Safari中打開該鏈接螟左。

2.實(shí)現(xiàn)

2.1 創(chuàng)建apple-app-site-association文件

apple-app-site-association文件格式如下

{
"applinks": {
"apps": [],
"details": [{
"appID": "Team ID.explicit",
"paths": ["*"]
}]
}
}

注意apple-app-site-association文件不要加后綴

appID的格式為:teamID.explicit,位置如下圖

image.png

appID密鑰的值是團(tuán)隊(duì)ID或應(yīng)用程序ID前綴觅够,后跟捆綁軟件ID胶背。對(duì)應(yīng)上面紅框中的兩個(gè)值

paths鍵的值是一個(gè)字符串?dāng)?shù)組,用于指定應(yīng)用程序支持的網(wǎng)站部分以及您不想與該應(yīng)用程序關(guān)聯(lián)的網(wǎng)站部分喘先。

要指定不應(yīng)作為通用鏈接處理的區(qū)域钳吟,請(qǐng)?jiān)诼窂阶址拈_頭添加“ NOT”(包括之后的空格T)。

例如窘拯,下面所示的文件可以防止/videos/wwdc/2010/*通過更新paths數(shù)組红且,將網(wǎng)站區(qū)域視為通用鏈接,如下所示:

  1. "paths": [ "/wwdc/news/", "NOT /videos/wwdc/2010/*", "/videos/wwdc/201?/*"]

注意

1.用于在paths數(shù)組中指定網(wǎng)站路徑的字符串區(qū)分大小寫涤姊;

2.使用*指定整個(gè)網(wǎng)站暇番;

3.包含特定的URL,例如/wwdc/news/砂轻,以指定特定的鏈接奔誓;

4.用添加到特定的URL斤吐,例如NOT /videos/wwdc/2010/搔涝,可以指定網(wǎng)站的一部分;

5.使用和措?匹配單個(gè)字符庄呈,/videos/wwdc/201?/*

因?yàn)橄到y(tǒng)paths按照指定的順序評(píng)估數(shù)組中的每個(gè)路徑,并在找到正負(fù)匹配時(shí)停止評(píng)估派阱,所以您應(yīng)在低優(yōu)先級(jí)路徑之前指定高優(yōu)先級(jí)路徑诬留。

請(qǐng)注意,僅將URL的路徑部分用于比較贫母。其他組件(例如查詢字符串或片段標(biāo)識(shí)符)將被忽略文兑。

2.2 上傳到HTTPS Web服務(wù)器

2.2.1 創(chuàng)建apple-app-site-association文件

創(chuàng)建apple-app-site-association文件后,將其上傳到HTTPS Web服務(wù)器的根目錄或者.well-known子目錄腺劣。

需要通過HTTPS在https://<domain>/apple-app-site-association或https://<domain>/.well-known/apple-app-site-association進(jìn)行訪問绿贞,而無需任何重定向;

其中<domain>路徑為我們?cè)贏PP內(nèi)applinks中配置的路徑橘原,下面會(huì)說到籍铁。

2.2.2 注意:

1.給后臺(tái)的apple-app-site-association文件不能有后綴涡上;

2.注意檢查格式,防止有其他字符或者亂碼導(dǎo)致無法跳轉(zhuǎn)拒名;

2.2.3 取到后臺(tái)路徑后校驗(yàn)方法

1.把鏈接粘貼到備忘錄吩愧,點(diǎn)擊看能否直接跳轉(zhuǎn)到APP,或者長(zhǎng)按鏈接看有沒有彈出跳轉(zhuǎn)到APP的選項(xiàng)增显;

2.通過蘋果API工具App Search API驗(yàn)證工具校驗(yàn)雁佳,結(jié)果以1為準(zhǔn);

3.你將要測(cè)試的網(wǎng)址在safari中打開同云,在出現(xiàn)的網(wǎng)頁上方(the Smart App Banner)甘穿,可以看到有在”XX”應(yīng)用中打開

2.3 APP設(shè)置

2.3.1 開啟Associated Domains權(quán)限

如下圖

image.png

Xcode內(nèi)設(shè)置如下圖,Domains格式applinks:offlinetest.e***x.net梢杭,offlinetest.e***x.net對(duì)應(yīng)2.2的<domain>

3.APP內(nèi)使用

當(dāng)點(diǎn)擊某個(gè)鏈接温兼,直接可以進(jìn)我們的app了,但是我們的目的是要能夠獲取到用戶進(jìn)來的鏈接武契,根據(jù)鏈接來展示給用戶相應(yīng)的內(nèi)容募判。
我們需要在工程里的實(shí)現(xiàn)AppDelegate里對(duì)應(yīng)的方法:

image.png

4.注意

通過2.2.3校驗(yàn)通過,但是在跳轉(zhuǎn)微信時(shí)候還是提示universal link校驗(yàn)不通過咒唆。分析原因是微信開放平臺(tái)配置的universalLink和當(dāng)前鏈接不匹配届垫,去更新就行

某系第三方,如sharaSDK提供了一個(gè)universalLink可直接使用全释,當(dāng)然也可以選擇自己生成

通過其他平臺(tái)管理:通過openinstall平臺(tái)

參考鏈接:蘋果通用鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末装处,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浸船,更是在濱河造成了極大的恐慌妄迁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件李命,死亡現(xiàn)場(chǎng)離奇詭異登淘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)封字,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門黔州,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阔籽,你說我怎么就攤上這事流妻。” “怎么了笆制?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵绅这,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我项贺,道長(zhǎng)君躺,這世上最難降的妖魔是什么峭判? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮棕叫,結(jié)果婚禮上林螃,老公的妹妹穿的比我還像新娘。我一直安慰自己俺泣,他們只是感情好疗认,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伏钠,像睡著了一般横漏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熟掂,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天缎浇,我揣著相機(jī)與錄音,去河邊找鬼赴肚。 笑死素跺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的誉券。 我是一名探鬼主播指厌,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼踊跟!你這毒婦竟也來了踩验?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤商玫,失蹤者是張志新(化名)和其女友劉穎箕憾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體决帖,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厕九,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蓖捶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了地回。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俊鱼,死狀恐怖刻像,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情并闲,我是刑警寧澤细睡,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站帝火,受9級(jí)特大地震影響溜徙,放射性物質(zhì)發(fā)生泄漏湃缎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一蠢壹、第九天 我趴在偏房一處隱蔽的房頂上張望嗓违。 院中可真熱鬧,春花似錦图贸、人聲如沸蹂季。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿洁。三九已至,卻和暖如春沟优,著一層夾襖步出監(jiān)牢的瞬間涕滋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工挠阁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留何吝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓鹃唯,卻偏偏與公主長(zhǎng)得像爱榕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坡慌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345