天天看點

Android利用webView調用JavaScript

1、Android中利用webView調用網頁上的Js代碼。

   Android 中可以通過webView來實作和Js的互動,在程式中調用Js代碼,隻需要将webView控件的支援Js的屬性設定為true,然後通過loadUrl就可以直接進行調用,如下所示:

mWebView.getSettings().setJavaScriptEnabled(true);

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

   2、網頁上調用Android中Java代碼的方法

   在網頁中調用Java代碼,需要在webView控件中添加javascriptInterface。如下所示:

mWebView.addJavascriptInterface(new Object() {
    public void clickOnAndroid() {
        mHandler.post(new Runnable() {
            public void run() {
                Toast.makeText(Test.this, "測試調用java", Toast.LENGTH_LONG).show();

            }
        });
    }
}, "demo");      

   在網頁中,隻需要像調用Js方法一樣,進行調用就可以

<div id='b'><a οnclick="window.demo.clickOnAndroid()">b.c</a></div>      

   3、Java代碼調用Js并傳參

   首先需要帶參數的Js函數,如function test(str),然後隻需在調用Js時傳入參數即可,如下所示:

mWebView.loadUrl("javascript:test('aa')");      

   4、Js中調用Java函數并傳參

   首先一樣需要帶參數的函數形式,但需注意此處的參數需要final類型,即得到以後不可修改,如果需要修改其中的值,可以先設定中間變量,然後進行修改。如下所示:

mWebView.addJavascriptInterface(new Object() {
    public void clickOnAndroid(final int i) {
        mHandler.post(new Runnable() {
            public void run() {
                int j = i;
                j++;
                Toast.makeText(Test.this, "測試調用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
            }
        });
    }
}, "demo");      

   然後在html頁面中,利用如下代碼:

<div id='b'><a οnclick="window.demo.clickOnAndroid(2)">b.c</a></div>,      

   即可實作調用