成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章了解H5打開APP的諸多方案

開發(fā) 前端 Android
本文從介紹喚起APP的諸多方案入手,講述各個方案的優(yōu)缺,期望讀者能從全局的角度對H5喚起APP有一個系統(tǒng)的認(rèn)識。

其實(shí)H5打開APP本來應(yīng)該是一件很簡單的事,無非是在H5頁面上調(diào)用一個協(xié)議或者接口將APP打開嘛。但是因?yàn)榧夹g(shù)方案的發(fā)展和某些流量APP的封鎖,喚起APP的方案就變得復(fù)雜了起來。本文從介紹喚起APP的諸多方案入手,講述各個方案的優(yōu)缺,期望讀者能從全局的角度對H5喚起APP有一個系統(tǒng)的認(rèn)識。

1. 喚起APP的方案

如下圖,當(dāng)前主要有三種打開APP的渠道:流量APP封裝渠道,原生的打開渠道以及一些奇技淫巧。

1.1 流量APP封裝渠道

微信、手Q和微博等流量入口為了保證流量不流失,對iOS和Android原生的喚起方案做了屏蔽和封裝。在這些APP中,使用原生喚起APP方案是無效的,只能用他們的方案或者位于白名單中的APP才能通過H5的喚起APP。

1.1.1 微信

微信最初喚起APP方案是WXJSBridge,后來變?yōu)榱薟X JS-SDK。這時(shí)候有人可能就要說了,你瞎說,我根本沒有看到JS-SDK上有關(guān)于喚起APP的相應(yīng)接口。其實(shí)這些關(guān)于APP的接口都是有的,只不過沒有寫在文檔中。

要使用微信的喚起APP方案需要兩點(diǎn):

  •  明確知道喚起APP的接口
  •  要喚起的APP本身就處于微信的白名單中

所以對于第三方APP,即使知道了接口的名字也不能用。

而JS-SDK和JSBridge的本質(zhì)實(shí)現(xiàn)都是一樣的,但是JS-SDK還要求使用者在自己的后臺全局緩存一個jsapi_ticket,如果是騰訊系單純想做喚起APP方面的邏輯的話,直接使用JSBridge無疑是個又快又好的做法。

1.1.2 手Q

手Q和微信一樣,也對喚起APP做了封裝,同樣又白名單的限制,所以也只有騰訊系的APP才能使用。

但是在微信中,喚起騰訊系A(chǔ)PP使用schema是不行的,但是對于在手Q打開騰訊系A(chǔ)PP,可以選擇使用schema而不是手Q的封裝方案MPP.

另外說一點(diǎn),手Q的MPP喚起APP并傳遞參數(shù)的方法有點(diǎn)問題,文檔寫的也不完善,確實(shí)不如直接用schema喚起好用。

1.1.3 其他流量APP

主要是指微博,手機(jī)百度等APP,應(yīng)該也是白名單的打開方式,平常用的不多,這里不做贅述。

2. 原生渠道

2.1 Schema

Schema是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議,主要有以下幾部分組成[1]   

  1.  行為(應(yīng)用的某個功能)   
  2.             |  
  3. scheme://[path][?query]  
  4.    |               |  
  5. 應(yīng)用標(biāo)識       功能需要的參數(shù) 

但是在Chrome25之后,iOS9以后,Android和iOS原生都不再支持這種協(xié)議,轉(zhuǎn)而轉(zhuǎn)變?yōu)樾碌姆桨窤pp Link和Universal Link。

對比起這種方案,Schema不能判斷出是否打開APP成功,也就不能針對沒有打開APP做一些處理(只能通過hack的手段,通過判斷頁面是否可見來達(dá)到這一點(diǎn))。但是,Schema現(xiàn)在在除原生以外各大移動端瀏覽器上(如QQ瀏覽器,Chrome瀏覽器等)都有不錯的支持,而且使用schema不用客戶端做額外的處理,做一些簡單的邏輯還是可以用的。

2.2 Universal Link

Universal Link是iOS開發(fā)的一種無縫鏈接APP和Web的方式。當(dāng)訪問一個鏈接時(shí),如果安裝了APP,那么直接跳轉(zhuǎn)APP的相應(yīng)頁面,如果沒有安裝APP,則跳轉(zhuǎn)相應(yīng)的H5頁面。不過我們可以利用它的這種特性來喚起APP。

Universal Link有幾個缺陷:

  •  要喚起的APP要做相應(yīng)的支持
  •  當(dāng)前的頁面和喚起的域名一定要跨域才可以
  •  必須是Https

2.3 APP Link

APP Link的初衷和Universal Link一致,都是為了給用戶提供無縫的用戶體驗(yàn)——如果安裝了APP則跳轉(zhuǎn)APP,沒有安裝APP就跳轉(zhuǎn)相應(yīng)頁面,因此,我們也可以用它來做喚起APP。同樣的,它也需要APP做相應(yīng)的設(shè)置。

不過APP Link是Android上提供的方案,它和Universal Link不同的是:不需要使用https協(xié)議

3. 其他渠道

3.1 應(yīng)用寶渠道

應(yīng)用寶渠道是應(yīng)用寶借用自己騰訊系A(chǔ)PP的能力,利用自己的權(quán)限來幫助其他APP在微信上喚起,換取其他推廣資源的行為。

不過這種方案已經(jīng)被微信給封殺了。所以當(dāng)前,作為一個第三方APP,是沒有辦法在微信上喚起的。

4. 總結(jié)

本文泛泛的總結(jié)了市面上常見的H5喚起APP方案,羅列了它們的優(yōu)缺點(diǎn)。受限于騰訊系本身白名單的限制,沒有辦法給出一個***實(shí)踐,但是也希望能給大家對H5喚起APP提供一些幫助。

 

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2020-10-09 08:15:11

JsBridge

2021-06-30 00:20:12

Hangfire.NET平臺

2023-05-12 08:19:12

Netty程序框架

2020-10-23 08:17:29

HTML5MathML語言

2023-07-11 15:34:02

2023-07-28 07:14:13

2023-05-08 08:21:15

JavaNIO編程

2021-09-27 09:18:30

ListIterato接口方法

2021-02-26 20:01:57

SVG濾鏡元素

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2023-07-30 15:18:54

JavaScript屬性

2021-05-18 08:30:42

JavaScript 前端JavaScript時(shí)

2021-03-09 14:04:01

JavaScriptCookie數(shù)據(jù)

2024-04-19 14:23:52

SwitchJavaScript開發(fā)

2021-06-24 09:05:08

JavaScript日期前端

2021-03-05 18:04:15

JavaScript循環(huán)代碼

2024-01-30 13:47:45

2023-09-06 14:57:46

JavaScript編程語言

2020-12-08 08:09:49

SVG圖標(biāo)Web

2019-01-09 10:04:16

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 色综合99 | 伊人影院在线观看 | 国产精品毛片无码 | 自拍第一页 | 能看的av | 国产精品福利视频 | 国产精品国产亚洲精品看不卡15 | 国产综合av | 91精品久久久久久久久久入口 | 亚洲精品视频在线观看视频 | 日韩视频精品在线 | 91精品一区二区三区久久久久久 | 欧美三级网站 | 成人在线精品视频 | 天天躁日日躁aaaa视频 | 精品真实国产乱文在线 | 免费黄色片视频 | 精品久久国产老人久久综合 | 在线视频一区二区 | 国际精品鲁一鲁一区二区小说 | 久国久产久精永久网页 | 国产一区免费视频 | 精品欧美一区二区三区久久久 | 国产97在线 | 日韩 | 美女国产精品 | 五月精品视频 | 欧美激情欧美激情在线五月 | 国产一区二区欧美 | 四虎影院在线观看免费视频 | 欧美综合网 | 国产在线网站 | 伊人中文字幕 | 精品久久久久久亚洲精品 | 国产在线精品一区二区 | 中文精品久久 | 欧美日韩视频在线第一区 | 日韩欧美手机在线 | 欧美激情精品久久久久久 | 日本高清不卡视频 | 91精品国产综合久久精品 | 亚洲一区中文字幕在线观看 |