iOS喚醒a(bǔ)pp

今天工作需要算利,要實(shí)現(xiàn)微信、QQ等掃描二維碼泳姐,喚醒a(bǔ)pp效拭,跳到指定頁(yè)面的功能。我去,一想沒(méi)有做過(guò)呀缎患!好吧慕的!今天有時(shí)間做了,網(wǎng)上查了不說(shuō)資料挤渔,都是說(shuō)喚醒a(bǔ)pp,多么好肮街,留存量,轉(zhuǎn)化量~~~~和我有什么關(guān)系判导,我是搬運(yùn)工嫉父!我只關(guān)心怎么實(shí)現(xiàn)。OK眼刃!現(xiàn)在上教程熔号,我的教程!鸟整!

喚醒a(bǔ)pp的三種方法:

1.URl Scheme

對(duì)于iOS開(kāi)發(fā)者來(lái)說(shuō)引镊,app應(yīng)用直接的跳轉(zhuǎn),分享等的跳轉(zhuǎn)都是通過(guò)URL Scheme 實(shí)現(xiàn)篮条,應(yīng)用與應(yīng)用直接的跳轉(zhuǎn)弟头。

二維碼掃描的原理就是web端通過(guò)js生成頁(yè)面,移動(dòng)端掃描通過(guò)瀏覽器喚醒a(bǔ)pp涉茧。移動(dòng)端判斷是否是從web端啟動(dòng)赴恨,獲取web端數(shù)據(jù),跳轉(zhuǎn)到指定的頁(yè)面伴栓。

因?yàn)閕OS開(kāi)發(fā)伦连,只看過(guò)簡(jiǎn)單的h5視頻文檔,會(huì)寫(xiě)一些簡(jiǎn)單的代碼钳垮,在網(wǎng)上搜索了一些資料惑淳。

對(duì)于使用URL Scheme ?在h5中的標(biāo)簽的使用一個(gè)??三種:

iframe標(biāo)簽

iframe方案的喚起原理是: 程序切換到后臺(tái)時(shí),計(jì)時(shí)器會(huì)被推遲(計(jì)時(shí)器不準(zhǔn)的又一種情況)饺窿。如果app被喚醒那么網(wǎng)頁(yè)必然就進(jìn)入了后臺(tái)歧焦,如果用戶從app切回來(lái),那么時(shí)間一般會(huì)超過(guò)2s;若app沒(méi)有被喚起肚医,那么網(wǎng)頁(yè)不會(huì)進(jìn)入后臺(tái)绢馍,setTimeout基本準(zhǔn)時(shí)觸發(fā),那么時(shí)間不會(huì)超過(guò)2s肠套。


網(wǎng)絡(luò)上找的代碼

a標(biāo)簽

<a href="url scheme://">換去app</a>

使用window層之間跳轉(zhuǎn)

window.location.href = "URL scheme://"

通過(guò)測(cè)試對(duì)比發(fā)現(xiàn):

Android使用iframe喚起舰涌,ios采用window.location.href喚起更合適一點(diǎn)。

代碼如下:



邏輯:

因?yàn)槲⑿攀墙筰OS端的深度鏈接得你稚,所以需要先判斷是否是微信瓷耙、QQ瀏覽器朱躺,如果是提示用戶用Safari打開(kāi),然后通過(guò)時(shí)間判斷哺徊,是否安裝了app如果安裝就換氣沒(méi)有安裝就跳到下載地址室琢。

由于通過(guò)URLScheme喚起有一個(gè)文件就是他會(huì)提示調(diào)到appStore下載乾闰,我們的解決方案是把時(shí)間設(shè)成了3秒落追,然后在離開(kāi)頁(yè)面的時(shí)候關(guān)閉頁(yè)面。

但是效果還是不是很好涯肩,解決的方案是:

區(qū)分系統(tǒng)轿钠,OS9開(kāi)啟Universal Links ?打通深度鏈接

深度鏈接得作用:

一種能夠方便的通過(guò)傳統(tǒng) HTTP 鏈接啟動(dòng)應(yīng)用程序, 使用相同的網(wǎng)址打開(kāi)網(wǎng)站和App。通過(guò)一個(gè)通用的鏈接便可實(shí)現(xiàn)病苗,當(dāng)移動(dòng)設(shè)備里面已經(jīng)有了某個(gè)應(yīng)用疗垛,在點(diǎn)擊了這個(gè)鏈接后便可實(shí)現(xiàn)深度鏈接而直接進(jìn)入應(yīng)用內(nèi)的某個(gè)特定頁(yè)面;如果手機(jī)內(nèi)并沒(méi)有該應(yīng)用硫朦,可打開(kāi)設(shè)定的網(wǎng)址(例如應(yīng)用的落地下載頁(yè)面)贷腕。

配置步驟:

1.首先,你必須有一個(gè)域名咬展,且這個(gè)域名的網(wǎng)站需要支持https泽裳,然后擁有網(wǎng)站的上傳到.well-known目錄的權(quán)限(這個(gè)權(quán)限是為了上傳一個(gè)Apple指定的文件apple-app-site-association),

支持Universal Links(通用鏈接)

創(chuàng)建一個(gè)json格式的命名為apple-app-site-association文件,注意這個(gè)文件必須沒(méi)有后綴名,文件名必須為apple-app-site-association!!!


appID: 這里的組成方式是 teamId.yourapp's bundle identifier.如上面的 9JA89QQLNQ,ABCD1234都是teamId,這個(gè)值從哪來(lái)的呢?

它是從的開(kāi)發(fā)者賬戶的個(gè)人中心來(lái)的,登陸你的開(kāi)發(fā)者中心




paths:

根據(jù) paths 鍵設(shè)定一個(gè)你的app支持的路徑列表,只有這些指定的路徑的鏈接,才能被app所處理,舉個(gè)例子:如果你的網(wǎng)站是www.yohunl.com,你的path寫(xiě)的是"/support/*",那么當(dāng)用戶點(diǎn)擊www.yohunl.com/support/myDoucument,就可以進(jìn)入你的app了,相反www.yohunl.com/other 就不會(huì).

path是大小寫(xiě)敏感的!

*號(hào)表示任意路徑.

上傳該文件apple-app-site-association到你的域名所對(duì)應(yīng)的網(wǎng)站的.well-known目錄下(其實(shí)也不一定是根目錄,例如ghost博客站點(diǎn),就沒(méi)有根目錄一說(shuō),它就需要放在相應(yīng)的主題目錄下),這一步是為了蘋(píng)果能從https://你的域名/.well-known/apple-app-site-associationxh獲取到你上傳的apple-app-site-association文件.

上傳完后,自己先訪問(wèn)一下,看看是否能夠獲取到,用我的做例子,https://yohunl.com/.well-known/apple-app-site-association,當(dāng)你點(diǎn)擊這個(gè)鏈接,應(yīng)該是下載apple-app-site-association文件.

驗(yàn)證該文件是否合法,蘋(píng)果為了方便開(kāi)發(fā)者,提供了一個(gè)網(wǎng)頁(yè)來(lái)驗(yàn)證我們編寫(xiě)的這個(gè)apple-app-site-association是否合法有效,驗(yàn)證網(wǎng)址,進(jìn)入網(wǎng)站進(jìn)行驗(yàn)證



在其中的Domains中填入你想支持的域名(這里不是隨便填的,是可以支持你需要的Universal Links的域名), 必須以applinks:為前綴 例如我的填入的是

applinks:yohunl.com

applinks:www.yohunl.com

蘋(píng)果將會(huì)在合適的時(shí)候,從這里填入的域名請(qǐng)求文件apple-app-site-association

注意:當(dāng)你打開(kāi)Associated Domains后,xcode會(huì)在你的工程中添加.entitlements文件


并且如果你登陸你的開(kāi)發(fā)者中心,可以看到



到此,你的app就已經(jīng)可以支持Universal Links(通用鏈接)了!!! 那么怎么測(cè)試呢?

在iOS設(shè)備中的備忘錄中添加記事本或短信中輸入App能識(shí)別的鏈接破婆,然后直接點(diǎn)擊此鏈接,就會(huì)直接跳轉(zhuǎn)到你的app了

或是長(zhǎng)按,在出現(xiàn)的彈出菜單中第二項(xiàng)是“在'XXX'中打開(kāi)”涮总,這也代表著成功。


或是你將要測(cè)試的網(wǎng)址放到safari中一個(gè)網(wǎng)頁(yè)中,然后點(diǎn)擊鏈接,在出現(xiàn)的網(wǎng)頁(yè)上方,下滑,可以看到有 在"XX"應(yīng)用中打開(kāi) (很多教程上說(shuō),在safari中直接點(diǎn)擊,就會(huì)跳轉(zhuǎn)到app,但是經(jīng)過(guò)我實(shí)際驗(yàn)證,是不可以的,可能是蘋(píng)果又調(diào)整了一下策略吧)


工程中添加處理方法

現(xiàn)在用戶點(diǎn)擊某個(gè)鏈接,直接可以進(jìn)我們的app了,但是,這不是我們的最終目的,我們的目的是要能夠獲取到用戶進(jìn)來(lái)的鏈接,根據(jù)鏈接來(lái)處理,需要展示給用戶的信息.


在工程里的 AppDelegate 里實(shí)現(xiàn) 方法


當(dāng) userActivity 是 NSUserActivityTypeBrowsingWeb 類(lèi)型, 則意味著它是由Universal Links進(jìn)來(lái)的,就可以添加我們自己的處理邏輯了!

這是網(wǎng)上一個(gè)比較詳細(xì)的教程祷舀,我按照教程做了一次瀑梗,我是搬運(yùn)工。

iOS的通用鏈接

官方文檔

查看是否支持 Universal Links的蘋(píng)果網(wǎng)站?網(wǎng)址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裳扯,一起剝皮案震驚了整個(gè)濱河市抛丽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饰豺,老刑警劉巖铺纽,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哟忍,居然都是意外死亡狡门,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)锅很,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)其馏,“玉大人,你說(shuō)我怎么就攤上這事爆安∨迅矗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)褐奥。 經(jīng)常有香客問(wèn)我咖耘,道長(zhǎng),這世上最難降的妖魔是什么撬码? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任儿倒,我火速辦了婚禮,結(jié)果婚禮上呜笑,老公的妹妹穿的比我還像新娘夫否。我一直安慰自己,他們只是感情好叫胁,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布凰慈。 她就那樣靜靜地躺著,像睡著了一般驼鹅。 火紅的嫁衣襯著肌膚如雪微谓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天输钩,我揣著相機(jī)與錄音豺型,去河邊找鬼。 笑死张足,一個(gè)胖子當(dāng)著我的面吹牛触创,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播为牍,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哼绑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了碉咆?” 一聲冷哼從身側(cè)響起抖韩,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疫铜,沒(méi)想到半個(gè)月后茂浮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壳咕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年席揽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谓厘。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡幌羞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竟稳,到底是詐尸還是另有隱情属桦,我是刑警寧澤熊痴,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站聂宾,受9級(jí)特大地震影響果善,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜系谐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一巾陕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔚鸥,春花似錦惜论、人聲如沸许赃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)混聊。三九已至弹谁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間句喜,已是汗流浹背预愤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咳胃,地道東北人植康。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像展懈,于是被迫代替她去往敵國(guó)和親销睁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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