调用这些方法最好在webview中的onPageFinished之后执行
private void getList(){
webView.evaluateJavascript("(function() { return document.documentElement.outerHTML; })()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String html) {
if (html != null) {
// 成功获取到HTML代码
Logger.e("webview --> html = " + html);
// 接下来可以解析这个HTML字符串
// parseHtmlById(html, "yourElementId");
} else {
Logger.e("webview --> Failed to get HTML.");
}
}
});
webView.evaluateJavascript(
"(function() {" +
" var listItems = document.querySelectorAll('.txtUl span');" +
" var textArray = []; " +
" for(var i = 0; i < listItems.length; i++) {" +
" textArray.push(listItems[i].textContent);" +
" }" +
" return textArray.join(', '); " + // 将数组转换为逗号分隔的字符串
"})()",
new ValueCallback<String>() {
@Override
public void onReceiveValue(String values) {
if (values != null) {
Logger.e("webview --> List items: " + values);
} else {
Logger.e("webview --> No list items found.");
}
}
});
}
获取id获取html中的值
private void getId(){
Map<String, String> map = new HashMap<>();
map.put("姓名", "XM");
map.put("证件号码", "KS_SFZ");
map.put("学校", "KS_SSXXMC");
map.put("准考证号码", "ZKZH");
map.put("总分", "SCORE");
webView.evaluateJavascript("(function() { return document.documentElement.outerHTML; })()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String html) {
if (html != null) {
// 成功获取到HTML代码
Logger.e("webview --> html = " + html);
// 接下来可以解析这个HTML字符串
// parseHtmlById(html, "yourElementId");
} else {
Logger.e("webview --> Failed to get HTML.");
}
}
});
for (Map.Entry<String, String> entry : map.entrySet()) {
webView.evaluateJavascript("(function() { return document.getElementById(\'" + entry.getValue() + "\').innerHTML; })()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
if (value != null) {
// 成功获取到ID对应的值
Logger.e("webview --> Value by ID: " + value);
} else {
Logger.e("webview --> No value found for the given ID.");
}
}
});
}
}