android webview 通过class 自动获取网页元素内容
时间: 2023-10-24 16:04:29 浏览: 56
在Android的WebView中,可以通过以下代码获取到指定class的元素内容:
```java
WebView webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// 获取 class="example" 的元素内容
webView.loadUrl("javascript:window.android.onElementContentLoaded(document.getElementsByClassName('example')[0].innerHTML)");
}
});
// 添加 JavaScript 接口
webView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void onElementContentLoaded(String content) {
// 处理获取到的元素内容
Log.d("WebView", "Element content: " + content);
}
}, "android");
```
在这个例子中,我们首先设置了WebViewClient的onPageFinished方法,当网页加载完成后会自动调用此方法。在这个方法中,我们通过JavaScript代码获取到指定class的元素内容,并通过WebView的loadUrl方法将获取到的内容回传给Android应用程序。
最后,我们通过addJavascriptInterface方法将一个Java对象添加为JavaScript接口,这个接口中包含了onElementContentLoaded方法,用于处理获取到的元素内容。在JavaScript代码中,我们通过window.android.onElementContentLoaded方法将获取到的元素内容传递给这个接口方法。
需要注意的是,这种方式可能会受到网页结构和JavaScript代码的影响,需要根据实际情况进行调整。同时,这种方式也可能会涉及到隐私和安全问题,请谨慎使用。