WebView使用
2020-03-18 本文已影响0人
失足者
转载:https://www.jianshu.com/p/3c94ae673e2a
获取html标签值:
方法1:
//在java代码中添加一个js接口用于回调内容
//添加JS回调接口
webview.addJavascriptInterface(new JavaScriptLocalObj(),"JS_Obj");
//@JavascriptInterface注释是必须的
public class JavaScriptLocalObj {
@JavascriptInterface
public void showSource(String str) {
//可处理获取到的标签值
LogUtils.e("HTML", "方法1:"+str);
}
}
//页面加载完成后再执行。注意JS语句调用的写法
webview.loadUrl("javascript:window.JS_Obj.showSource(document.querySelector('.data2').innerHTML)");
方法2:不使用loadUrl()方法,也无需添加js接口回调
webview.evaluateJavascript("document.querySelector('span.data2').innerHTML", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {//这个方法value值是带双引号的
LogUtils.e("HTML", "方法2:"+value);
}
});
两种方法的输出结果:
结果
注意:其中使用document.getElementsByTagName('span')[0].innerHTML也能获取到标签的值。
但是根据class获取document.getElementsByClassName("data2").innerHTML无法获取到标签值,Id也是一样。不过使用document.querySelector('span.data2')方法无论是标签,class,id都能获取到。