App call app 使用 Universe Link(通用鏈接)

Universe Link 簡介

iOS 9之前,一直使用的是URL Schemes技術(shù)來從外部對App進行跳轉(zhuǎn),但是iOS系統(tǒng)中進行URL Schemes跳轉(zhuǎn)的時候如果沒有安裝App,會提示無法打開頁面的提示惋鹅。
iOS 9之后起可以使用Universal Links技術(shù)進行跳轉(zhuǎn)頁面,這是一種體驗更加完美的解決方案。

簡而言之: Universal Links 是從瀏覽器或者網(wǎng)頁上打開鏈接跳轉(zhuǎn)到手機上的app疏橄。

  • 我們在該鏈接域名根目錄配置過的一個鏈接(直接跳轉(zhuǎn)到我們app);也可以在該鏈接中放置對應(yīng)的H5頁面(點擊H5頁面按鈕跳轉(zhuǎn)到我們app)墙基。
  • 當用戶的點擊該鏈接软族,只要手機中安裝了支持該鏈接的APP就會直接進入到APP中刷喜。如果沒有安裝APP則會跳轉(zhuǎn)到Safari瀏覽器中,展示H5頁面立砸。對用戶來說則是一個無縫跳轉(zhuǎn)的過程掖疮。


    示例

使用Universal Link(通用鏈接)跳轉(zhuǎn)的好處

1, 唯一性: 不像自定義的URL Scheme,因為它使用標準的HTTPS協(xié)議鏈接到你的web站點颗祝,所以一般不會被其它的APP所聲明浊闪。另外,URL scheme因為是自定義的協(xié)議螺戳,所以在沒有安裝 app 的情況下是無法直接打開的(在Safari中還會出現(xiàn)一個不可打開的彈窗)搁宾,而Universal Link(通用鏈接)本身是一個HTTPS鏈接,所以有更好的兼容性倔幼;
2, 安全: 當用戶的手機上安裝了你的APP盖腿,那么系統(tǒng)會去你配置的網(wǎng)站上去下載你上傳上去的說明文件(這個說明文件聲明了當前該HTTPS鏈接可以打開那些APP)。因為只有你自己才能上傳文件到你網(wǎng)站的根目錄损同,所以你的網(wǎng)站和你的APP之間的關(guān)聯(lián)是安全的翩腐;
3, 可變: 當用戶手機上沒有安裝你的APP的時候,Universal Link(通用鏈接)也能夠工作膏燃。如果你愿意茂卦,在沒有安裝你的app的時候,用戶點擊鏈接组哩,會在safari中展示你網(wǎng)站的內(nèi)容等龙;
4, 簡單: 一個HTTPS的鏈接,可以同時作用于網(wǎng)站和APP伶贰;
5, 私有: 其它APP可以在不需要知道你的APP是否安裝了的情況下和你的APP相互通信蛛砰。

支持Universal Link(通用鏈接)

先決條件:必須有一個支持HTTPS的域名,并且擁有該域名下上傳到根目錄的權(quán)限(為了上傳Apple指定文件)幕袱。
配置指定apple-app-site-association文件
apple-app-site-association文件創(chuàng)建編輯其內(nèi)容
需要創(chuàng)建一個apple-app-site-association文件暴备,必須命名為apple-app-site-association,切記沒有后綴们豌。
apple-app-site-association 文件是放到根目錄下
https://<fully qualified domain>/.well-known/apple-app-site-association
https://<fully qualified domain>/apple-app-site-association

apple-app-site-association 內(nèi)容

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TeamID.com.****.***",
                "paths": [ "/main/api.html", "/main/api_gobear.html" ]
            },
        {
        "appID": "5NZRFH2H.com.apple.wwdc",
        "paths": [ "*"]
     }
        ]
    }
}

iOS14 Universal Link隱藏頂部橫幅方法

"applinks": {
     "details": [
          {
            "appIDs": [ "ABCDE12345.com.example.app"],
            "components": [
              {
                 "/": "/main/*",
                 "exclude": true  //加這行可以隱藏頂部橫幅
              }
            ]
          }
      ]
  }

注意修改之后不會立即生效涯捻,生效時間大概在24小時之內(nèi)。

1望迎,apps:是限制只能在這幾個app中使用障癌, 基本是不填寫,所以是空數(shù)組
2辩尊,appID :為teamId.bundle identifier形式涛浙,5NZRFH2H就是teamId,com.apple.wwdc是項目identifier。
登陸開發(fā)者中心轿亮,在Account -> Membership里面可以找到Team ID疮薇。
3,details:數(shù)組中可以配置多個APP的信息我注,如果公司內(nèi)有多個APP需要支持Universal link按咒,則可以直接添加多個
4,paths:設(shè)定你的app支持的路徑列表但骨,只有這些指定路徑的鏈接励七,才能被app所處理。的寫法代表了可識別域名下所有鏈接奔缠。注意是區(qū)分大小寫的
5掠抬,/app/
是自己定義的路徑;

上傳完后校哎,讓上傳人員給你一個訪問路徑两波,先訪問一下,看看是否能夠獲取到贬蛙,當你在瀏覽器中輸入這個文件鏈接后, 出現(xiàn)下圖就可以了:


上傳完后,訪問查看

蘋果開發(fā)者賬號配置

步驟1
步驟2

注意記得最后要更新下載證書雨女,替換原來的證書

xcode 項目配置

步驟1
步驟2

在添加好的 Associated Domains 添加 links
點擊加號添加 ,格式是 applinks:+配置的域名
例如: applinks:www.Share.com
可以添加多個

添加示例

訪問 apple-app-site-association 文件路徑就是
https://www.Share.com/.well-known/apple-app-site-association

https://www.Share.com/apple-app-site-association

注意:

  • Universal link的域名和H5頁面URL的域名不可以是同一個阳准,詳情請看Universal link同域不能喚起
  • Universal Link有跨域問題,Universal Link必須要求跨域馏臭,如果不跨域野蝇,就不會跳轉(zhuǎn)(iOS 9.2之后的改動)
    假如當前網(wǎng)頁的域名是A,當前網(wǎng)頁發(fā)起跳轉(zhuǎn)的域名是B括儒,必須要求BA是不同域名才會觸發(fā)Universal Link绕沈,如果BA是相同域名,只會繼續(xù)在當前WebView里面進行跳轉(zhuǎn)帮寻,哪怕你的Universal Link一切正常乍狐,根本不會打開App
    Universal Link請求apple-app-site-association時機
  • 當我們的App在設(shè)備上第一次運行時,如果支持Associated Domains功能固逗,那么iOS會自動去GET定義的Domain下的apple-app-site-association文件

APP 處理 Universal Link 跳轉(zhuǎn)APP 方法

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

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
 if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
     NSURL *url = userActivity.webpageURL;
 if (url是我們希望處理的) {
       //進行我們的處理
 } else {
     [[UIApplication sharedApplication] openURL:url];
 }
 }
 return YES;
}

測試是否生效

a) 在Safari輸入Universal Links浅蚪,查看是否彈出跳轉(zhuǎn)鏈接
b) 在iOS原生備忘錄上, 輸入Universal Links,點擊是否可以跳轉(zhuǎn)app

Universal Link 的運行機制原理

當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)默默替你做的备籽,我們要做的就是確保配置的正確性。

Universal link 查詢配置鏈接 UAT 環(huán)境
iOS 查看配置
https://<fully qualified domain>/apple-app-site-association
https://<fully qualified domain>/.well-known/apple-app-site-association
安卓 查看配置
https://<fully qualified domain>/.well-known/assetlinks.json

更多內(nèi)容可以查看原文[Universal Links(通用鏈接)詳解]http://www.reibang.com/p/f1c97d0d0d22

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沃琅,一起剝皮案震驚了整個濱河市鳍怨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哑子,老刑警劉巖舅列,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卧蜓,居然都是意外死亡帐要,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門弥奸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榨惠,“玉大人,你說我怎么就攤上這事盛霎≡龋” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵愤炸,是天一觀的道長期揪。 經(jīng)常有香客問我,道長规个,這世上最難降的妖魔是什么凤薛? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诞仓,結(jié)果婚禮上缤苫,老公的妹妹穿的比我還像新娘。我一直安慰自己墅拭,他們只是感情好活玲,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谍婉,像睡著了一般舒憾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屡萤,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天珍剑,我揣著相機與錄音,去河邊找鬼死陆。 笑死招拙,一個胖子當著我的面吹牛唧瘾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播别凤,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼饰序,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了规哪?” 一聲冷哼從身側(cè)響起求豫,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诉稍,沒想到半個月后蝠嘉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡杯巨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年蚤告,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片服爷。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡杜恰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仍源,到底是詐尸還是另有隱情心褐,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布笼踩,位于F島的核電站逗爹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏戳表。R本人自食惡果不足惜桶至,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匾旭。 院中可真熱鬧,春花似錦圃郊、人聲如沸价涝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽色瘩。三九已至,卻和暖如春逸寓,著一層夾襖步出監(jiān)牢的瞬間居兆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工竹伸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泥栖,地道東北人簇宽。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像吧享,于是被迫代替她去往敵國和親魏割。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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