前言:
為了加快開(kāi)發(fā)效率,目前公司一些功能使用H5開(kāi)發(fā),這里難免會(huì)用到Js與Java函數(shù)互相調(diào)用的問(wèn)題,這個(gè)Android是提供了原生支持的,不過(guò)存在安全隱患,今天我們來(lái)學(xué)習(xí)一種安全方式來(lái)滿足Js與java互相調(diào)用的需求。它就是WebViewJavascriptBridge。
學(xué)習(xí)動(dòng)機(jī):
先看下之前的解決辦法:Android混合開(kāi)發(fā)之WebView與Javascript交互
最近棒棒安全的一個(gè)市場(chǎng)推廣來(lái)我們公司推廣他們的產(chǎn)品,當(dāng)時(shí)也沒(méi)太引起我的注意,后來(lái)這個(gè)市場(chǎng)推廣人員把我們的app的進(jìn)行了他們的安全驗(yàn)證,然后發(fā)給我一份檢測(cè)報(bào)告,關(guān)于WebView的檢測(cè)內(nèi)容大致如下:
其實(shí)目前公司采用H5的業(yè)務(wù)都是相對(duì)不是很重要的一些業(yè)務(wù),而且安全性要求相對(duì)比較低,不過(guò)作為技術(shù)負(fù)責(zé)人的我,覺(jué)得現(xiàn)在很有必要盡快尋找一個(gè)相對(duì)安全的方式來(lái)解決這個(gè)問(wèn)題,算是未雨綢繆吧。經(jīng)過(guò)搜過(guò)資料尋找的解決辦法就是使用WebViewJavascriptBridge來(lái)實(shí)現(xiàn)Js與Java的互相調(diào)用。
WebViewJavascriptBridge介紹:
WebViewJavascriptBridge是WebView和Js交互通信的橋梁,用作者的話來(lái)說(shuō)就是實(shí)現(xiàn)java和js的互相調(diào)用的橋梁。替代了WebView的自帶的JavascriptInterface的接口,使得開(kāi)發(fā)者更方便的讓js和native靈活交互,使我們的開(kāi)發(fā)更加靈活和安全。
目前實(shí)現(xiàn)JSBridge的開(kāi)源框架很多,這里采用的hi大頭鬼hi寫的開(kāi)源框架:https://github.com/lzyzsd/JsBridge
WebViewJavascriptBridge使用方式:
1.)添加配置信息
project的build.gradle中添加如下配置
allprojects { &