iOS通用鏈接Universal Link典型場(chǎng)景介紹及使用

需求:

用戶從qq/微信分享出去的H5頁(yè)面,當(dāng)點(diǎn)擊H5頁(yè)面的某個(gè)按鈕時(shí),要實(shí)現(xiàn)如下功能:

1.當(dāng)用戶未安裝App時(shí),跳轉(zhuǎn)到AppStore頁(yè)面引導(dǎo)用戶下載

2.當(dāng)用戶已安裝App時(shí),喚醒App并跳轉(zhuǎn)到App里面的某一個(gè)指定頁(yè)面

傳統(tǒng)的url schema實(shí)現(xiàn)方式存在兩個(gè)弊端,一是跳轉(zhuǎn)的時(shí)候會(huì)有一個(gè)提示框:“是否打開(kāi)XXX”,用戶體驗(yàn)不好,二是微信屏蔽了URL Scheme,必須是在微信的白名單里面才可跳轉(zhuǎn),也就意味著用戶在微信里面是無(wú)法一鍵直達(dá)App的。這對(duì)于大多數(shù)公司來(lái)講,是難以承受的。而通用鏈接Universal Link正是可以解決上述問(wèn)題的技術(shù)手段。

一、通用鏈接介紹及優(yōu)點(diǎn) :

iOS 9 Universal Links 通用鏈接可參考這篇博文

二、通用鏈接具體實(shí)施步驟

? ? ?這里可以分兩種實(shí)現(xiàn)方式,第一種是自己去配置通用鏈接,第二種是通過(guò)一些第三方sdk來(lái)實(shí)現(xiàn)此功能,筆者在這里強(qiáng)烈推薦第二種,我自己有嘗試第一種配置,坑多,而且配置半天后發(fā)現(xiàn)得到的鏈接始終通不過(guò)測(cè)試,懷疑是服務(wù)器那邊不支持。而第二種配置的話,坑少,而且還會(huì)節(jié)省大量的開(kāi)發(fā)時(shí)間,保證該功能的迅速上線。

①自己配置通用鏈接?

iOS的UniversalLink開(kāi)發(fā)總結(jié)? 不建議 坑太多。

②用第三方sdk去集成配置(魔窗,LinkedME等)

下面以魔窗為例,講解如何配置。魔窗iOS集成文檔

用魔窗的話iOS端只需要做三部分操作,分別是魔窗后臺(tái)配置部分,Xcode配置部分,代碼實(shí)現(xiàn)部分。下面將詳細(xì)描述步驟。

魔窗后臺(tái)配置部分

①注冊(cè)一個(gè)魔窗賬號(hào) 魔窗注冊(cè)?

②賬號(hào)注冊(cè)完畢后,登錄魔窗點(diǎn)擊右上角新增產(chǎn)品然后選擇App。

③要填寫的信息分為三部分,分別是產(chǎn)品信息,App信息,魔窗位信息。產(chǎn)品信息沒(méi)什么可講的,魔窗位信息可以不填 無(wú)視。App信息頁(yè)面如下圖

應(yīng)用寶下載地址,基本大多數(shù)公司都會(huì)有,直接填上即可。

應(yīng)用名稱和Bundle ID不用解釋 直接填上

URL Scheme:這個(gè)LiveRoom名稱可以自己隨便起,但要保證跟Xcode里面URL Scheme 保持一致(后面會(huì)講解Xcode中的配置)。

下載地址就是應(yīng)用程序在App Store里面的下載地址。

Team ID :如何獲取Team ID?按照教程得到填寫即可。

將這些都填寫完畢后,魔窗會(huì)給你分配一個(gè)域名,這個(gè)域名會(huì)在后面Xcode中配置使用到。

魔窗分配的域名

魔窗位信息無(wú)視,下一步,然后注冊(cè)完畢后,會(huì)得到一個(gè)App key,這個(gè)是魔窗App key

魔窗App key

④想要使用深度鏈接,還需要配置魔窗的mlink服務(wù),如下圖


點(diǎn)擊添加mLink服務(wù)

點(diǎn)擊添加mLink服務(wù)后,如下圖


mLikn服務(wù)配置頁(yè)面

mLink服務(wù)名稱可自己配置 ?mLink服務(wù)key也可自己配置 這個(gè)key后面代碼里面需要使用。

然后就是URL如何拼接了。比如你app中有用戶的個(gè)人中心,且可以用參數(shù)決定是否顯示用戶的詳細(xì)信息,那么您需要輸入的頁(yè)面URI如下:mw://www.mycompany.com/user/:userId?containsDetail=:containsDetail。這里mw://為URI Scheme,可從外部喚醒App,在“App管理”中設(shè)置。www.mycompany.com是hostname,user是path。url不懂得如何配置的可參考魔窗上面的點(diǎn)擊查看如何配置URL,簡(jiǎn)言之,就是服務(wù)器地址后面拼參數(shù)。

這些填完以后,會(huì)得到一個(gè)短連接。


至此,魔窗的所有配置均已做完。

小結(jié):魔窗的配置是為了獲得五個(gè)關(guān)鍵參數(shù),以供后面配置使用。分別是URL Scheme,魔窗App key,魔窗mLink key ?魔窗域名 魔窗短連接。

Xcode配置部分

Xcode這邊配置非常容易,就兩步即可。

①配置URL Scheme 這里的identifier可填可不填沒(méi)影響,URL Schemes這里填在魔窗后臺(tái)配置時(shí),你寫的URL Scheme,魔窗跟Xcode這里二者必須保持一致

Xcode URL Scheme配置


②applinks配置 這里的Domains一定要填你之前在魔窗配置后獲得的那個(gè)魔窗域名,這里要保證不能出差錯(cuò),否則無(wú)法完成跳轉(zhuǎn)

Xcode applinks配置

Xcode的配置到這里就完成了。

代碼實(shí)現(xiàn)部分

①集成魔窗sdk,手動(dòng)和cocopods兩種方式,手動(dòng)請(qǐng)參考魔窗文檔,下面只講cocopods集成

pod 'MagicWindowSDK'

pod install

記住不要pod update,因?yàn)槟Т皊dk自己集成了微信分享,非常容易跟shareSDK 友盟分享SDK沖突。

②Appdelegate中實(shí)現(xiàn)注冊(cè)魔窗

在didFinishLaunchingWithOptions這個(gè)app初始化方法里面, 其中MWKey就是魔窗key, liveRoomKey需要你替換成之前配置的魔窗mLink key?;卣{(diào)代碼里面,不同的項(xiàng)目有不同需求,靈活應(yīng)變即可。

注冊(cè)并實(shí)現(xiàn)通用連接的回調(diào)

下圖是官網(wǎng)推薦的回調(diào)代碼內(nèi)容:

魔窗推薦的回調(diào)代碼

③Appdelegate中實(shí)現(xiàn)必要的方法,在.m中 實(shí)現(xiàn)以下這三個(gè)方法即可。這里我的openUrl有做判斷,因?yàn)轫?xiàng)目里面集成了友盟分享,如果不做判斷的話,會(huì)很容易沖突。大家根據(jù)自己的項(xiàng)目,靈活處理即可。

至此,iOS端就完成了所有的配置,看著文章內(nèi)容很多,其實(shí)配置起來(lái)還是很快很簡(jiǎn)單的。將你之前獲得的魔窗短鏈,交給你們的web開(kāi)發(fā)小伙伴,讓他參考這篇文章,進(jìn)行web端的配置即可魔窗JS API。(超簡(jiǎn)單)

小提示:如果你按教程配置完事了,發(fā)現(xiàn)qq分享出去的鏈接,可以正常跳到自家的App某個(gè)頁(yè)面,而微信的不行,那么可以先排除是不是h5鏈接的原因。測(cè)試方法,直接用短連接+參數(shù) https://ab9e1n.mlinks.cc/AcJF?roomId=0849170 如果類似這樣的鏈接在微信里面正常,那么可推斷是web端原因,如果這樣的鏈接也不正常,那么則是App端沒(méi)配置好,可檢測(cè)下AppDelegate.m需要實(shí)現(xiàn)的那三個(gè)方法有沒(méi)有實(shí)現(xiàn),是不是寫錯(cuò)了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,512評(píng)論 19 139
  • 用到的組件 1、通過(guò)CocoaPods安裝 2、第三方類庫(kù)安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,156評(píng)論 1 180
  • (窗外漸白)一杯溫水看天明,一部手機(jī)可過(guò)夜。夜里漫長(zhǎng)聽(tīng)秋聲,風(fēng)吹雨敲窗臺(tái)響。顯山現(xiàn)水見(jiàn)風(fēng)樓,風(fēng)吹雨下空氣清。天氣漸...
    甘朝武閱讀 319評(píng)論 0 0
  • 盡管我們總會(huì)遇到無(wú)窮無(wú)盡的混蛋和笨蛋,但總會(huì)有一些人,讓你感到生命的溫暖和滿足,讓你感到生命的不虛此行。——羅永浩...
    韓武紀(jì)閱讀 863評(píng)論 0 2
  • 一次說(shuō)走就走來(lái)到心念已久的色達(dá) 一路艱辛的旅途只為了那一抹紅 一路走來(lái)看見(jiàn)很多朝拜的人,一起一跪之間飽含了他們的虔...
    MAGUOYUE閱讀 258評(píng)論 0 0

友情鏈接更多精彩內(nèi)容