Android中webview與js的交互(一)

webview中調(diào)用js

webView.getSettings().setJavaScriptEnabled(true);//設(shè)置js腳本可用
webView.loadUrl("url");//加載頁(yè)面
webView.loadUrl("javascript:test(a,b,c)");//調(diào)用js方法

html中調(diào)用java

android中配置

webView.addJavascriptInterface(new MyJSInterface(),"app");//添加js腳本接口

class  MyJSInterface
{   
 
@JavascriptInterface
public void androidMethod() //提供給js調(diào)用的方法
  {
  //todo    
  }
}

html中使用

<div id='b'>
<a onclick="window.app.androidMethod()">b.c</a>
</div>

總結(jié)

webview與js的交互的基本使用方法如上,補(bǔ)充幾點(diǎn):

  • 在這篇博客中抄出這段話
    Android Webview有兩個(gè)非常知名的漏洞:
    1、最近爆出來(lái)的UXSS漏洞,可以越過同源策略,獲得任意網(wǎng)頁(yè)的Cookie等信息,Android 4.4以下都有此問題,基本無(wú)解,只能重新編譯瀏覽器內(nèi)核解決,詳情可以參考最近移動(dòng)安全三兩事,感興趣的可以去看一下@RAyH4c劫持微博、QQ空間的視頻。
    2、成名已久的任意命令執(zhí)行漏洞,通過addJavascriptInterface方法,Js可以調(diào)用Java對(duì)象方法,通過反射機(jī)制,Js可以直接獲取Runtime,從而執(zhí)行任意命令。Android 4.2以上,可以通過聲明@JavascriptInterface保證安全性,4.2以下不能再調(diào)用addJavascriptInterface,需要另謀他法。

  • 在實(shí)際的混合應(yīng)用開發(fā)中需要對(duì)js交互做一些封裝設(shè)計(jì)以便于后期的維護(hù)擴(kuò)展,我會(huì)在Android中webview與js的交互(二)中分享一下我的經(jīng)驗(yàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容