Android中webview和js之間的交互

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>,

即可實現調用

發佈了32 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章