能否使用WebView中JavaScript与Andorid中java方法互调?如果可以,想想该怎么做
时间: 2024-02-24 07:55:43 浏览: 235
Android中实现WebView和JavaScript的互相调用详解
是的,可以使用WebView中JavaScript与Android中Java方法互调。
想要实现这个功能,需要使用到Android中的WebView的addJavascriptInterface方法。这个方法可以将Java对象暴露给JavaScript代码,JavaScript代码就可以调用这个对象的方法,实现Java与JavaScript的互通。
具体步骤如下:
1. 在Java代码中创建一个类,这个类中包含需要暴露给JavaScript的方法。
2. 使用WebView的addJavascriptInterface方法将这个Java类对象暴露给JavaScript。
3. 在JavaScript代码中,使用window对象来访问这个Java对象,即可调用其中的方法。
具体的实现可以参考下面的代码示例:
Java代码:
```java
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
```
在Activity中使用addJavascriptInterface方法将Java对象暴露给JavaScript:
```java
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
```
JavaScript代码中通过window对象访问Java对象:
```javascript
function showToast() {
Android.showToast("Hello World!");
}
```
注意,addJavascriptInterface方法需要在主线程中调用,否则可能会出现安全问题。另外,在使用JavaScript调用Java方法时,需要添加@JavascriptInterface注解,以确保安全性。
阅读全文