1.android中利用webview調(diào)用網(wǎng)頁上的js代碼。
Android 中可以通過webview來實現(xiàn)和js的交互,在程序中調(diào)用js代碼,只需要將webview控件的支持js的屬性設(shè)置為true,,然后通過loadUrl就可以直接進行調(diào)用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 網(wǎng)頁上調(diào)用android中java代碼的方法
在網(wǎng)頁中調(diào)用java代碼,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "測試調(diào)用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
在網(wǎng)頁中,只需要像調(diào)用js方法一樣,進行調(diào)用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3. Java代碼調(diào)用js并傳參
首先需要帶參數(shù)的js函數(shù),如function test(str),然后只需在調(diào)用js時傳入?yún)?shù)即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中調(diào)用java函數(shù)并傳參
首先一樣需要帶參數(shù)的函數(shù)形式,但需注意此處的參數(shù)需要final類型,即得到以后不可修改,如果需要修改其中的值,可以先設(shè)置中間變量,然后進行修改。如下所示:
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, "測試調(diào)用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
然后在html頁面中,利用如下代碼<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
即可實現(xiàn)調(diào)用