什么是 Javascript bridge
隨著h5的不斷普及及優(yōu)化,以及移動(dòng)端對(duì)動(dòng)態(tài)化的需求越來(lái)越大,開發(fā)者經(jīng)常需要在app中嵌入一些網(wǎng)頁(yè),然后會(huì)在web和native之間進(jìn)行交互,如傳遞數(shù)據(jù),調(diào)用函數(shù),而連接web與native需要一個(gè)橋梁,通常稱為javascript bridge,項(xiàng)目中選擇一個(gè)好的javascript bridge也非常重要。
Javascript bridge現(xiàn)狀
目前github上也有一些開源的,其中使用最廣的非WebViewJavascriptBridge、JsBridge莫屬,然而,最近剛開源了一個(gè)新項(xiàng)目DSBridge,號(hào)稱最好用的javascript bridge。筆者仔細(xì)對(duì)比了一下,DSBridge分分鐘秒殺所有啊。
下面是一篇DSBridge與WebViewJavascriptBridge的對(duì)比文章:DSBridge VS WebViewJavascriptBridge, 文章中各方面對(duì)比已經(jīng)很詳細(xì)了,在此,簡(jiǎn)單總結(jié)一下,以作記錄。
DSBridge 和 WebViewJavascriptBridge相比的主要特點(diǎn):
DSBridge真正跨平臺(tái)!原版WebViewJavascriptBridge只支持ios,只不過(guò)有人在android上也實(shí)現(xiàn)了和WebViewJavascriptBridge相同的前端調(diào)用協(xié)議,所以可以在ios/android上使用同一套js調(diào)用協(xié)議,但本身來(lái)講,WebViewJavascriptBridge ios和android平臺(tái)并非一家之作,所以也并沒有官方提供跨平臺(tái)的技術(shù)支持,而DSBridge官方同時(shí)支持ios和android。
DSBridge支持同步調(diào)用!這一點(diǎn)秒殺其它所有,可謂一騎絕塵。同步在復(fù)雜一點(diǎn)的應(yīng)用中有多重要,相信使用過(guò)node的都應(yīng)該深有感觸。原文中有仔細(xì)說(shuō)明,請(qǐng)移步http://m.itdecent.cn/p/d967b0d85b97。
三端友好; 無(wú)論是在ios、android或者 web,使用起來(lái)都非常簡(jiǎn)單優(yōu)雅,這一點(diǎn)和WebViewJavascriptBridge相比,簡(jiǎn)直就是藝術(shù)。
DSBridge為國(guó)人項(xiàng)目,有詳細(xì)中文文檔和問(wèn)題反饋渠道。
其它
DSBridge雖剛剛開源,比較年輕,不像WebViewJavascriptBridge和javascript bridge那樣有著多年以來(lái)積累的用戶,目前知名度也并不高,但就github和作者博客來(lái)看,目前已有一批用戶在使用,反饋都很不錯(cuò),作者對(duì)于反饋都能及時(shí)回應(yīng),最近github上 android版的英文文檔也已經(jīng)補(bǔ)上,DSBridge需要一個(gè)宣傳和用戶積累的過(guò)程。DSBridge的測(cè)試覆蓋非常全,根據(jù)github上的最新更新記錄,增加了壓力測(cè)試,在異步連續(xù)調(diào)用1萬(wàn)次的情況下DSBridge依然堅(jiān)挺!ios上支持ios7以上,同時(shí)允許自由選擇WKWebView和UIWebview,而Android端相對(duì)來(lái)說(shuō)要簡(jiǎn)單一些,相信你完全可以看懂其源碼。
DSBridge Github地址: