Android从Webview获取Javascript返回值/属性代码
时间: 2023-08-06 22:09:36 浏览: 198
以下是三种方式在Android中获取Webview中的JavaScript返回值或属性的示例代码:
1. 使用JavaScriptInterface接口:
```java
// 创建一个Java对象,用于与JavaScript对象绑定
class MyJavaScriptInterface {
@JavascriptInterface
public void showValue(String value) {
Log.d("JavaScript", "Value from JavaScript: " + value);
}
}
// 将Java对象与JavaScript对象绑定
webView.addJavascriptInterface(new MyJavaScriptInterface(), "MyObject");
// 在JavaScript代码中调用Java对象的方法
var value = "Hello, world!";
MyObject.showValue(value);
```
2. 使用evaluateJavascript方法:
```java
// 执行JavaScript代码,并获取执行结果
webView.evaluateJavascript("document.getElementById('myText').value", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d("JavaScript", "Value from JavaScript: " + value);
}
});
```
3. 使用WebChromeClient的onJsPrompt方法:
```java
// 创建一个继承自WebChromeClient的类,重写onJsPrompt方法
class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
Log.d("JavaScript", "Value from JavaScript: " + message);
// 将用户输入的数据返回给JavaScript代码
result.confirm("Input received");
return true;
}
}
// 设置WebChromeClient
webView.setWebChromeClient(new MyWebChromeClient());
// 在JavaScript代码中弹出对话框,并获取用户输入的数据
var value = prompt("Please input a value:", "");
```
阅读全文