一、什么是deeplink芬骄?
Deeplink技術(shù)是操作系統(tǒng)本身就有的能力,發(fā)展歷史已經(jīng)有很多年了鹦聪。不同操作系統(tǒng)账阻、不同版本都有著不同版本的Deeplink技術(shù)。
目前移動(dòng)端 Deeplink 的說法有狹義和廣義之分泽本,分為 Deeplink 和 Deferred Deeplink淘太。
Deeplink:深度鏈接,指已安裝相應(yīng) App 的情況下规丽,把特定的參數(shù)通過 url 的形式傳遞給 App蒲牧,直接打開指定的內(nèi)部頁面,實(shí)現(xiàn)從鏈接直達(dá) App 內(nèi)部頁面的跳轉(zhuǎn)赌莺。
Deferred Deeplink:延遲深度鏈接冰抢,主要增加了一個(gè)是否已安裝相應(yīng) App 的判斷,用戶點(diǎn)擊鏈接時(shí)艘狭,如果未安裝 App挎扰,則引導(dǎo)用戶前往應(yīng)用市場(chǎng)翠订,下載完對(duì)應(yīng) App 后,首次打開該 App 時(shí)自動(dòng)跳轉(zhuǎn)進(jìn)入指定的內(nèi)部頁面遵倦。
一般常說的“Deeplink”其實(shí)就是這兩層含義相結(jié)合的簡(jiǎn)稱尽超。
想在 App 上開發(fā) Deeplink 是需要一些技術(shù)支持的,首先要明白梧躺,一個(gè) App 想要做到一鍵拉起 App似谁,必須先滿足兩個(gè)條件:
1,具備被其他 App 打開的能力(URL Scheme)
2掠哥,具備打開其他 App 的能力(各種設(shè)備判斷及跳轉(zhuǎn))
DeepLink用到的核心技術(shù)就是:URL Scheme棘脐。不論是IOS還是Android。
二龙致、URL Scheme
在iOS 9和安卓 6之前蛀缝,移動(dòng)端實(shí)現(xiàn)Deeplink的方式都是通過URL Scheme。URL目代,我們都很清楚屈梁,weixin://dl/moments就是一個(gè) URL,也叫它鏈接或網(wǎng)址榛了;Scheme在讶,表示的是一個(gè) URL 中最初始的位置,即 ://之前的那段字符霜大,例如這個(gè)URL中的Scheme就是weixin构哺。我們可以用Scheme 來定位對(duì)應(yīng)的App。例如淘寶的Scheme就是taobao战坤、支付寶的Scheme就是alipay曙强,新浪微博的Scheme是sinaweibo,易車的scheme是bitauto.yicheapp途茫。
被打開的App可以向操作系統(tǒng)提前注冊(cè)一個(gè) URL碟嘴,開頭的Scheme 用于從瀏覽器或其他App中拉起本App。移動(dòng)操作系統(tǒng)提供解析Scheme的能力囊卜,判斷Scheme屬于哪個(gè)App娜扇,喚起并將參數(shù)傳遞給App。此外通過指定的 URL 中其他字段(如path等)栅组,可以讓App在被喚起后直接打開某些特定頁面雀瓢,比如視頻詳情頁、商品詳情頁玉掸、活動(dòng)詳情頁等刃麸。
一般來說整段的URL Scheme是這種的形式:Scheme://host:port/path?query=xxxxxxx。其中path代表了想要跳轉(zhuǎn)的指定頁面排截,而query代表了想要傳遞的參數(shù)嫌蚤。
URL Scheme方式優(yōu)點(diǎn)是開發(fā)簡(jiǎn)單辐益,但弊端也很明顯:
1断傲,我們只能通過固定協(xié)議格式的鏈接來實(shí)現(xiàn)跳轉(zhuǎn)脱吱,而且打開H5頁面時(shí),會(huì)出現(xiàn)一個(gè)提示框:“是否打開XXX”认罩。用戶確認(rèn)了才會(huì)跳轉(zhuǎn)到App中箱蝠,增加了用戶流程
2,微信垦垂、QQ等把URL Scheme 打開App這種方式給禁了宦搬,但是它們都各自維護(hù)著一個(gè)白名單,如果Scheme不在該白名單內(nèi)劫拗,那么就不能在他們的App內(nèi)打開這個(gè)App(如果被封鎖了那么用戶只能通過右上角瀏覽器內(nèi)打開App)
3间校、 Universal link
Universal link 是蘋果公司在2015年推出的新一代Deeplink技術(shù),iOS9及以上的用戶可以通過點(diǎn)擊一個(gè)https 鏈接無縫的跳轉(zhuǎn)到一個(gè)App應(yīng)用內(nèi)的指定頁面页慷,不需要讓用戶點(diǎn)擊“是否打開xx”憔足。因?yàn)樯倭诉@個(gè)提示框,所以Universal link比URL Scheme方式體驗(yàn)更好酒繁,更重要的優(yōu)勢(shì)是目前微信和QQ已經(jīng)支持Universal link這種形式了滓彰,因此我們更推薦開發(fā)者在iOS端使用這種方式喚起App。
流程
App第一次啟動(dòng)州袒、更新版本后第一次啟動(dòng)揭绑,都會(huì)自動(dòng)下載 apple-app-site-association 配置文件
1、下載 - App向工程里配置的域名發(fā)起Get請(qǐng)求拉取配置好存放在https服務(wù)器上的配置文件
2郎哭、 注冊(cè) - App將配置文件注冊(cè)給手機(jī)系統(tǒng)
3他匪、命中 - 由任意h5、或其他App發(fā)起的跳轉(zhuǎn)url夸研,如果命中了配置文件注冊(cè)過的通用鏈接诚纸,就打開App
4、沒命中 - 直接跳轉(zhuǎn)url鏈接對(duì)應(yīng)的h5頁面
優(yōu)點(diǎn):
1陈惰、唯一性: 它使用標(biāo)準(zhǔn)的 https 鏈接到你的web站點(diǎn)畦徘,所以它不會(huì)被其它的App所聲明。
2抬闯、安全: 只有你自己才能上傳文件到你網(wǎng)站的根目錄井辆,所以你的網(wǎng)站和你的App之間的關(guān)聯(lián)是安全的。iOS會(huì)去你的網(wǎng)站上去下載你上傳上去的說明文件(這個(gè)說明文件聲明了你的App可以打開哪些類型的https鏈接)溶握。
3杯缺、 可變: Universal Links本身是一個(gè) https 鏈接,當(dāng)用戶手機(jī)上沒有安裝你的App的時(shí)候也能夠工作睡榆。此時(shí)點(diǎn)擊鏈接會(huì)跳轉(zhuǎn)到safari中展示你網(wǎng)頁萍肆。
4袍榆、簡(jiǎn)單: 一個(gè)URL鏈接,可以同時(shí)作用于網(wǎng)站和App。
5塘揣、私有: 其它App可以在不需要知道你的App是否安裝了的情況下和你的App相互通信
微信目前已支持通過Universal link方式直接打開第三方App包雀,要求SDK版本大于等于1.8.6.1。用戶主要需要配置以下幾步才能使用正常功能亲铡,詳情配置步驟可以參照微信Universal link文檔:
(1)首先按照蘋果官方文檔才写,配置Universal link。微信對(duì)Universal Links配置有以下要求:
Universal Links必須支持https
Universal Links配置的paths不能帶query參數(shù)
微信使用Universal Links拉起第三方App時(shí)奖蔓,會(huì)在Universal Links末尾拼接路徑和參數(shù)赞草,因此App配置的paths必須加上通配符/*
(2)然后向微信注冊(cè)自己的應(yīng)用id和Universal Links。
四吆鹤、 App Link
2015年5月28日厨疙,Google I/O大會(huì)上正式推出Android M(android6.0 API級(jí)別23),其中新增了一個(gè)特性叫AppLinks疑务,它可以加強(qiáng)軟件間的關(guān)聯(lián)沾凄,可以把觸屏端的流量帶到移動(dòng)端來。用戶可以點(diǎn)擊一個(gè)H5鏈接時(shí)直接跳轉(zhuǎn)到 App 指定頁面暑始,而不會(huì)讓用戶點(diǎn)擊”是否打開xx“搭独。所以App Link比URL Scheme方式體驗(yàn)更好。
優(yōu)勢(shì)
1廊镜、安全且具體: Android App Links使用鏈接到您擁有的網(wǎng)站域的HTTP URL牙肝,因此沒有其他應(yīng)用可以使用您的鏈接。Android App Links的要求之一是您通過我們的網(wǎng)站關(guān)聯(lián)方法驗(yàn)證您所在域的所有權(quán)嗤朴。
2配椭、無縫的用戶體驗(yàn):由于Android App Links對(duì)您網(wǎng)站和應(yīng)用中的相同內(nèi)容使用單個(gè)HTTP URL,因此未安裝應(yīng)用程序的用戶只需訪問您的網(wǎng)站而不是應(yīng)用程序 - 沒有404雹姊,沒有錯(cuò)誤股缸。
3、Android Instant Apps支持:使用Android Instant Apps吱雏,您的用戶無需安裝即可運(yùn)行您的Android應(yīng)用敦姻。要為您的Android應(yīng)用添加即時(shí)應(yīng)用支持,請(qǐng)?jiān)O(shè)置Android應(yīng)用鏈接并訪問g.co/InstantApps歧杏。
4镰惦、通過Google搜索吸引用戶:用戶可以通過在移動(dòng)瀏覽器,Google搜索應(yīng)用犬绒,Android屏幕搜索或Google智能助理中點(diǎn)擊Google中的網(wǎng)址旺入,直接在應(yīng)用中打開特定內(nèi)容。