andorid和js 交互

html文件javascript

 <a>js中調用本地方法</a>  html

    <script>  java

    function fromjs(){  android

        document.getElementById("show").innerHTML="I am from js";  ide

    }  this

    var aTag = document.getElementsByTagName('a');編碼

    aTag.addEventListener('click', function(){  htm

        //調用android本地方法  對象

       myJsObj.fromAndroid("android本地方法fromAndroid(String str)");  接口

        return false;  

    }, false);  

    </script>  

   <div id="show">   </div> 

Android 中的java文件

     //設置編碼  

       mWebView.getSettings().setDefaultTextEncodingName("utf-8");  

       //支持js  

       mWebView.getSettings().setJavaScriptEnabled(true);  

       //設置背景顏色 透明  

       mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));  

       //設置本地調用對象及其接口  

       mWebView.addJavascriptInterface(new JsObject(context), "myJsObj");  

       //載入js  

       mWebView.loadUrl("file:///android_asset/xxx.html");  

       //點擊調用js中方法  

       mBtn.setOnClickListener(new View.OnClickListener() {  

           @Override  

           public void onClick(View v) {  

              mWebView.loadUrl("javascript:fromjs()");  

               Toast.makeText(context,"調用javascript:fromjs()", Toast.LENGTH_LONG).show();  

           }  

       });  


public class JsObject {  

    Context mContext;  

    @JavascriptInterface //Android 4.2JS調用Java代碼的時候必須加上@JavascriptInterface才能調用。

    public JavaScriptObject(Context mContxt) {  

        this.mContxt = mContxt;  

    }  

    public void fromAndroid(String str) {  

        Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();  

    }  

    

}  

注: addEventListener中的第一個參數是事件名稱(不加on),第二個參數是調用方法,第三個參 數是useCapture, 一個bool類型。當爲false時爲冒泡獲取(由裏向外),true爲capture方式(由外向裏)。

相關文章
相關標籤/搜索