用webview执行js
时间: 2023-09-18 11:08:06 浏览: 95
webview与js的交互
5星 · 资源好评率100%
在Android中,可以使用WebView的loadUrl()方法来执行JavaScript代码。具体实现步骤如下:
1. 启用JavaScript
在WebView中启用JavaScript,可以通过以下代码实现:
```
webView.getSettings().setJavaScriptEnabled(true);
```
2. 执行JavaScript代码
使用loadUrl()方法来执行JavaScript代码,例如:
```
webView.loadUrl("javascript:alert('hello world')");
```
上述代码中,使用loadUrl()方法来执行JavaScript代码,弹出一个包含"hello world"的提示框。
需要注意的是,loadUrl()方法只允许执行一行JavaScript代码,如果需要执行多行代码,可以使用JavaScript的多行注释来实现:
```
webView.loadUrl("javascript:(function() { " +
"/* your JavaScript code here */ " +
"})()");
```
上述代码中,使用多行注释将多行JavaScript代码包含在一个匿名函数中,再将该函数作为一行代码执行。
另外,如果需要在JavaScript代码中访问Java对象或调用Java方法,可以通过WebView的addJavascriptInterface()方法来实现。具体实现步骤如下:
1. 创建Java对象
创建Java对象,例如:
```
public class MyObject {
@JavascriptInterface
public void showToast(String message) {
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
}
}
```
上述代码中,创建一个名为MyObject的Java对象,并添加了一个名为showToast()的方法,用于弹出Toast提示框。
2. 将Java对象添加到WebView中
使用addJavascriptInterface()方法将Java对象添加到WebView中,例如:
```
webView.addJavascriptInterface(new MyObject(), "myObject");
```
上述代码中,将MyObject对象添加到WebView中,并设置对象名称为"myObject"。
3. 在JavaScript代码中访问Java对象
在JavaScript代码中,可以通过对象名称来访问Java对象,例如:
```
webView.loadUrl("javascript:myObject.showToast('hello world')");
```
上述代码中,在JavaScript代码中调用Java对象的showToast()方法,弹出一个包含"hello world"的Toast提示框。需要注意的是,使用addJavascriptInterface()方法添加Java对象时,必须使用@JavascriptInterface注解来标记Java方法,以保证能够在JavaScript代码中被访问到。
阅读全文