需求:
用戶從qq/微信分享出去的H5頁面,當(dāng)點(diǎn)擊H5頁面的某個(gè)按鈕時(shí)淌山,要實(shí)現(xiàn)如下功能:
1.當(dāng)用戶未安裝App時(shí)裸燎,跳轉(zhuǎn)到AppStore頁面引導(dǎo)用戶下載
2.當(dāng)用戶已安裝App時(shí),喚醒App并跳轉(zhuǎn)到App里面的某一個(gè)指定頁面
傳統(tǒng)的url schema實(shí)現(xiàn)方式存在兩個(gè)弊端泼疑,一是跳轉(zhuǎn)的時(shí)候會(huì)有一個(gè)提示框:“是否打開XXX”德绿,用戶體驗(yàn)不好,二是微信屏蔽了URL Scheme王浴,必須是在微信的白名單里面才可跳轉(zhuǎn)脆炎,也就意味著用戶在微信里面是無法一鍵直達(dá)App的。這對于大多數(shù)公司來講氓辣,是難以承受的秒裕。而通用鏈接Universal Link正是可以解決上述問題的技術(shù)手段。
一钞啸、通用鏈接介紹及優(yōu)點(diǎn) :
iOS 9 Universal Links 通用鏈接可參考這篇博文
二几蜻、通用鏈接具體實(shí)施步驟
? ? ?這里可以分兩種實(shí)現(xiàn)方式,第一種是自己去配置通用鏈接体斩,第二種是通過一些第三方sdk來實(shí)現(xiàn)此功能梭稚,筆者在這里強(qiáng)烈推薦第二種,我自己有嘗試第一種配置絮吵,坑多弧烤,而且配置半天后發(fā)現(xiàn)得到的鏈接始終通不過測試,懷疑是服務(wù)器那邊不支持蹬敲。而第二種配置的話暇昂,坑少,而且還會(huì)節(jié)省大量的開發(fā)時(shí)間伴嗡,保證該功能的迅速上線急波。
①自己配置通用鏈接?
iOS的UniversalLink開發(fā)總結(jié)? 不建議 坑太多熊榛。
②用第三方sdk去集成配置(魔窗崭篡,LinkedME等)
下面以魔窗為例髓棋,講解如何配置骑丸。魔窗iOS集成文檔
用魔窗的話iOS端只需要做三部分操作,分別是魔窗后臺(tái)配置部分何之,Xcode配置部分嚷辅,代碼實(shí)現(xiàn)部分煤墙。下面將詳細(xì)描述步驟麻惶。
魔窗后臺(tái)配置部分
①注冊一個(gè)魔窗賬號 魔窗注冊?
②賬號注冊完畢后馍刮,登錄魔窗點(diǎn)擊右上角新增產(chǎn)品然后選擇App。
③要填寫的信息分為三部分用踩,分別是產(chǎn)品信息渠退,App信息,魔窗位信息脐彩。產(chǎn)品信息沒什么可講的碎乃,魔窗位信息可以不填 無視。App信息頁面如下圖
應(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中配置使用到绵载。
魔窗位信息無視埂陆,下一步,然后注冊完畢后娃豹,會(huì)得到一個(gè)App key焚虱,這個(gè)是魔窗App key
④想要使用深度鏈接,還需要配置魔窗的mlink服務(wù)懂版,如下圖
點(diǎn)擊添加mLink服務(wù)后鹃栽,如下圖
mLink服務(wù)名稱可自己配置 ?mLink服務(wù)key也可自己配置 這個(gè)key后面代碼里面需要使用。
然后就是URL如何拼接了躯畴。比如你app中有用戶的個(gè)人中心民鼓,且可以用參數(shù)決定是否顯示用戶的詳細(xì)信息,那么您需要輸入的頁面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峭状,簡言之克滴,就是服務(wù)器地址后面拼參數(shù)。
這些填完以后优床,會(huì)得到一個(gè)短連接劝赔。
至此,魔窗的所有配置均已做完胆敞。
小結(jié):魔窗的配置是為了獲得五個(gè)關(guān)鍵參數(shù)着帽,以供后面配置使用杂伟。分別是URL Scheme,魔窗App key仍翰,魔窗mLink key ?魔窗域名 魔窗短連接赫粥。
Xcode配置部分
Xcode這邊配置非常容易,就兩步即可予借。
①配置URL Scheme 這里的identifier可填可不填沒影響越平,URL Schemes這里填在魔窗后臺(tái)配置時(shí),你寫的URL Scheme灵迫,魔窗跟Xcode這里二者必須保持一致
②applinks配置 這里的Domains一定要填你之前在魔窗配置后獲得的那個(gè)魔窗域名秦叛,這里要保證不能出差錯(cuò),否則無法完成跳轉(zhuǎn)
Xcode的配置到這里就完成了瀑粥。
代碼實(shí)現(xiàn)部分
①集成魔窗sdk挣跋,手動(dòng)和cocopods兩種方式,手動(dòng)請參考魔窗文檔利凑,下面只講cocopods集成
pod 'MagicWindowSDK'
pod install
記住不要pod update浆劲,因?yàn)槟Т皊dk自己集成了微信分享,非常容易跟shareSDK 友盟分享SDK沖突哀澈。
②Appdelegate中實(shí)現(xiàn)注冊魔窗
在didFinishLaunchingWithOptions這個(gè)app初始化方法里面牌借, 其中MWKey就是魔窗key, liveRoomKey需要你替換成之前配置的魔窗mLink key割按∨虮ǎ回調(diào)代碼里面,不同的項(xiàng)目有不同需求适荣,靈活應(yīng)變即可现柠。
下圖是官網(wǎng)推薦的回調(diào)代碼內(nèi)容:
③Appdelegate中實(shí)現(xiàn)必要的方法,在.m中 實(shí)現(xiàn)以下這三個(gè)方法即可弛矛。這里我的openUrl有做判斷够吩,因?yàn)轫?xiàng)目里面集成了友盟分享,如果不做判斷的話丈氓,會(huì)很容易沖突周循。大家根據(jù)自己的項(xiàng)目,靈活處理即可万俗。
至此湾笛,iOS端就完成了所有的配置,看著文章內(nèi)容很多闰歪,其實(shí)配置起來還是很快很簡單的嚎研。將你之前獲得的魔窗短鏈,交給你們的web開發(fā)小伙伴库倘,讓他參考這篇文章临扮,進(jìn)行web端的配置即可魔窗JS API论矾。(超簡單)
小提示:如果你按教程配置完事了,發(fā)現(xiàn)qq分享出去的鏈接杆勇,可以正常跳到自家的App某個(gè)頁面拇囊,而微信的不行,那么可以先排除是不是h5鏈接的原因靶橱。測試方法,直接用短連接+參數(shù) https://ab9e1n.mlinks.cc/AcJF?roomId=0849170 如果類似這樣的鏈接在微信里面正常路捧,那么可推斷是web端原因关霸,如果這樣的鏈接也不正常,那么則是App端沒配置好杰扫,可檢測下AppDelegate.m需要實(shí)現(xiàn)的那三個(gè)方法有沒有實(shí)現(xiàn)队寇,是不是寫錯(cuò)了。