【iOS】Universal Links(通用鏈接)及其配置方法

Universal Links 的作用

當(dāng)應(yīng)用支持 Universal Links 后鄙皇,如果用戶已經(jīng)安裝了你的 app伴逸,當(dāng)點(diǎn)擊開發(fā)者配置的網(wǎng)站鏈接后错蝴,iOS 用戶可以無縫跳轉(zhuǎn)至該應(yīng)用 顷锰,而無需經(jīng)由 Safari 中轉(zhuǎn)官紫;如果沒有安裝玛界,則會通過 Safari 打開鏈接對應(yīng)的網(wǎng)站慎框。

:當(dāng)用戶在 WKWebView 或 UIWebView 頁面或 Safari 網(wǎng)頁中點(diǎn)擊指向網(wǎng)站的鏈接時(shí)笨枯,Universal Links 才允許用戶打開開發(fā)者的應(yīng)用

Universal Links 配置方法

  1. 在開發(fā)者中心進(jìn)行配置:找到對應(yīng)的App ID馅精,在 Application Services 列表里將 Associated Domains 更改為 Enabled。


    Application Services
  2. 打開工程配置 Capabilities 選項(xiàng)卡中的 Associated Domains 開關(guān)漫玄,在其中的 Domains 中填入域名睦优,必須以“applinks:”為前綴汗盘,如“applinks:test.universallinks.com”隐孽。

    image.png

  1. 創(chuàng)建 JSON 數(shù)據(jù)格式的名為 apple-app-site-association 的文件菱阵,內(nèi)容為你的應(yīng)用需關(guān)聯(lián)的所有 URL送粱,形式如下:
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "ABCD1234.com.apple.wwdc",
                "paths": [ "*" ]
            }
        ]
    }
}

:對于在 iOS 9.3.1 更高版本中運(yùn)行的應(yīng)用程序抗俄,apple-app-site-association 的文件大小必須 ≤ 128 KB动雹。

  1. 上次 apple-app-site-association 文件至你的網(wǎng)站服務(wù)器(需支持 HTTPS 協(xié)議)跟压,并將其放置網(wǎng)站根目錄或 .well-known 文件夾下震蒋。
  2. 在 AppDelegate 的 - (BOOL)application: continueUserActivity: restorationHandler: 方法中處理通用鏈接查剖。
- (BOOL)application:(nonnull UIApplication *)application
continueUserActivity:(nonnull NSUserActivity *)userActivity
 restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler {
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *webpageURL = userActivity.webpageURL;
        NSString *host = webpageURL.host;
        if ([host isEqualToString:@"test.universallinks.com"]) {
            // TODO:處理應(yīng)用內(nèi)跳轉(zhuǎn)邏輯
        }
        else {
            [[UIApplication sharedApplication]openURL:webpageURL];
        }
        return YES;
    }
    return NO;
}

Universal Links 原理

  1. app 第一次啟動 或 app 更新版本后第一次啟動時(shí)笋庄,會向工程里配置的域名發(fā)起獲取 apple-app-site-association 文件的 get 請求直砂,并將其注冊給系統(tǒng)静暂。

  2. 當(dāng)用戶在 WKWebView 或 UIWebView 頁面或 Safari 網(wǎng)頁中點(diǎn)擊指向開發(fā)者網(wǎng)站的鏈接時(shí),如果系統(tǒng)中安裝了開發(fā)者的 app摹迷,Universal Links 會直接調(diào)起泪掀,否則會通過 Safari 打開鏈接對應(yīng)的網(wǎng)站。

其它問題

  1. 點(diǎn)擊 url 頁面中的通用鏈接后椅挣,沒有打開應(yīng)用鼠证。
    原因:當(dāng)用戶點(diǎn)擊通用鏈接時(shí)靠抑,iOS 系統(tǒng)會檢查用戶最近的選擇颂碧,以確定是打開應(yīng)用還是網(wǎng)站载城。 例如诉瓦,用戶在 Safari 中點(diǎn)擊通用鏈接打開應(yīng)用后,可以通過點(diǎn)擊狀態(tài)欄中返回按鈕來在 Safari 中繼續(xù)瀏覽網(wǎng)站固额,直到用戶在網(wǎng)頁頂部的條幅中點(diǎn)擊“打開”按鈕斗躏。
    解決方法:在網(wǎng)頁頂部的條幅中點(diǎn)擊“打開”按鈕瑟捣。

  2. 服務(wù)器配置了 apple-app-site-association 文件栅干,點(diǎn)擊 url 鏈接卻沒有調(diào)起客戶端碱鳞。
    原因:服務(wù)器根目錄及 .well-known 文件夾下均存在 apple-app-site-association 文件,客戶端在請求該文件時(shí)贵白,會以 .well-known 文件夾下的配置文件內(nèi)容為準(zhǔn)禁荒,而在更改配置時(shí)沒有同時(shí)對這兩個(gè)目錄中的文件進(jìn)行更新呛伴,故導(dǎo)致上述問題热康。
    解決方法:同時(shí)更新根目錄及 .well-known 文件夾下的 apple-app-site-association 文件姐军,或只保留其中某個(gè)文件并使內(nèi)容保持最新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末著觉,一起剝皮案震驚了整個(gè)濱河市固惯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌镇辉,老刑警劉巖忽肛,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件础废,死亡現(xiàn)場離奇詭異罕模,居然都是意外死亡淑掌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門媒殉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廷蓉,“玉大人桃犬,你說我怎么就攤上這事给猾。” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵尾序,是天一觀的道長每币。 經(jīng)常有香客問我琢歇,道長李茫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮味榛,結(jié)果婚禮上予跌,老公的妹妹穿的比我還像新娘匕得。我一直安慰自己,他們只是感情好略吨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布鞠苟。 她就那樣靜靜地躺著秽之,像睡著了一般考榨。 火紅的嫁衣襯著肌膚如雪河质。 梳的紋絲不亂的頭發(fā)上掀鹅,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天乐尊,我揣著相機(jī)與錄音扔嵌,去河邊找鬼。 笑死谣殊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宜狐。 我是一名探鬼主播抚恒,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俭驮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了萍恕?” 一聲冷哼從身側(cè)響起车要,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤类垫,失蹤者是張志新(化名)和其女友劉穎悉患,沒想到半個(gè)月后榆俺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掀虎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烹玉。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡二打,死狀恐怖继效,靈堂內(nèi)的尸體忽然破棺而出瑞信,到底是詐尸還是另有隱情,我是刑警寧澤逼友,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布帜乞,位于F島的核電站挖函,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏津畸。R本人自食惡果不足惜必怜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一暖途、第九天 我趴在偏房一處隱蔽的房頂上張望膏执。 院中可真熱鬧欺栗,春花似錦征峦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽针饥。三九已至打厘,卻和暖如春贺辰,著一層夾襖步出監(jiān)牢的瞬間嵌施,已是汗流浹背吗伤。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工足淆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留礁阁,地道東北人姥闭。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓棚品,卻偏偏與公主長得像,于是被迫代替她去往敵國和親门怪。 傳聞我的和親對象是個(gè)殘疾皇子锅纺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容