Android WebView Java和JavaScript交互

  • Java调用JavaScript
    • mWebView.loadUrl("javascript:toast()");
      
    • js:
      <script language="javascript>
      <!--提供给android的java代码调用-->
      function toast(){
          alert("fdsaf")      
      }
      
  • JavaScript调用Java
    • WebView提供了一个名为WebSetting的工具类来实现让WebView中的JavaScript脚本调用android的java方法,三个步骤:
      • mWebView.getWebSetting ,调用WebSetting类的setJavaScriptEnabled方法
        webSettings.setJavaScriptEnabled(true);
        
      • mWebView.addJavaScriptInterface(new JavaObject(this), "javaObject");
        

          上面这种JavaScript调用java方法虽然是官方提供的,在android4.2之前的系统中,上面的用法存在极大的安全隐患,会引起WebView远程代码执行漏洞。从android4.2开始,google修复了这个漏洞,唯一需要修改的是对暴露给JavaScript调用的方法增加@JavascriptInterface注解

  • android 4.2之前的解决办法

猜你喜欢

转载自www.cnblogs.com/endian11/p/9085833.html