大家在瀏覽網(wǎng)頁(yè)的時(shí)候政供,有時(shí)會(huì)遇到這種情況播聪。當(dāng)你的手機(jī)中有某一個(gè)APP的時(shí)候,恰巧你打開(kāi)的網(wǎng)頁(yè)是該APP官網(wǎng)的某個(gè)頁(yè)面布隔,這時(shí)瀏覽器會(huì)提示你离陶,“在‘xxx’中打開(kāi)?”這幾個(gè)字樣衅檀,點(diǎn)擊“打開(kāi)”后招刨,系統(tǒng)就會(huì)自動(dòng)打開(kāi)APP,并且跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面哀军。這個(gè)和點(diǎn)擊推送打開(kāi)APP并且跳轉(zhuǎn)的功能很類(lèi)似沉眶。那么,我們需要怎么配置才合理呢排苍?
首先我們需要在APP內(nèi)部設(shè)定一個(gè)URL Schemes沦寂。你可以把它理解為APP在網(wǎng)頁(yè)端的文本傳輸協(xié)議,比如:http淘衙。在網(wǎng)頁(yè)端传藏,當(dāng)調(diào)用一個(gè)網(wǎng)址時(shí),iOS系統(tǒng)會(huì)自動(dòng)檢測(cè)該網(wǎng)址是否是一個(gè)APP注冊(cè)的URL Schemes,如果是毯侦,就會(huì)提示打開(kāi)該APP哭靖。聽(tīng)起來(lái)很抽象對(duì)吧,哈哈哈侈离,先看圖:
URL Schemes.jpg
這樣我就生成了一個(gè)URL Schemes:test-deepLinking试幽。所以,調(diào)用“test-deepLinking://”時(shí)卦碾,瀏覽器就會(huì)提示你铺坞,“在‘你的APP名’中打開(kāi)?”洲胖。so easy有木有济榨。
1.jpeg
2.jpeg
當(dāng)然了,此時(shí)的效果僅僅限于能幫你在瀏覽器打開(kāi)APP而已绿映,接下來(lái)就是跳轉(zhuǎn)了擒滑。
在AppDelegate中,有這樣的一個(gè)方法
-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id>*)options{returnYES;}
當(dāng)用戶(hù)用過(guò)URL Schemes打開(kāi)APP時(shí)叉弦,就會(huì)調(diào)用這個(gè)方法丐一。并且將對(duì)應(yīng)的網(wǎng)址URL通過(guò)方法對(duì)應(yīng)的參數(shù)“url”傳遞給你。這個(gè)時(shí)候淹冰,你就可以將傳過(guò)來(lái)的url進(jìn)行處理并且跳轉(zhuǎn)了库车。比如:輸入了一個(gè)網(wǎng)址test-deeplinking://test/product/123,這時(shí)候我在APP中就能取到product/123,然后知道了需要跳轉(zhuǎn)到Product頁(yè)面榄棵,id是123凝颇。(這里面的規(guī)則各不相同,可以根據(jù)各個(gè)公司需求而定)如下:
3.jpeg
4.jpeg
很簡(jiǎn)單吧疹鳄,接下來(lái)只要和公司做好規(guī)則拧略,然后就可以輕松的進(jìn)行網(wǎng)頁(yè)和APP之間的跳轉(zhuǎn)了。當(dāng)然我需要提醒一下大家瘪弓,因?yàn)镾afari是蘋(píng)果公司的官方瀏覽器垫蛆,所以大家在進(jìn)行測(cè)試的時(shí)候還是主要使用Safari,用別的瀏覽器可能實(shí)現(xiàn)不了跳轉(zhuǎn)腺怯,這個(gè)是沒(méi)有辦法的事情(我也很無(wú)奈T_T)袱饭。
轉(zhuǎn)載:http://www.reibang.com/p/8e7a9eb49358