1:将 webview的Setting中,设置javaScriptEnabled = true
webView.settings.javaScriptEnabled = true
webView.settings.allowFileAccess = true
2:设置 addJavascriptInterface
val javaScriptParse = InJavaScriptLocalObj()
webView.addJavascriptInterface(javaScriptParse, "java_obj")
InJavaScriptLocalObj :
class InJavaScriptLocalObj {
// 设置正则表达式
val regFormat = "\\s*|\t|\r|\n"
val regTag = "<[^>]*>"
//一定也要加上这个注解,否则没有用
@JavascriptInterface
fun getHtmlContent(html: String) {
//获取html中的所有文本
var htmlText = html.replace(regFormat.toRegex(), "").replace(regTag.toRegex(), "")
}
}
3:在页面加载完成时,进行解析
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
view?.loadUrl("javascript:window.java_obj.getHtmlContent(document.documentElement.outerHTML);void(0)");
super.onPageFinished(view, url)
}
}