android - 如何在页面加载时等待然后在 Android WebViewClient 中执行 Javascript 代码
问题描述
我想processHTML
在网页加载完成后被触发。我想我需要:
document.load =
为了这。但我不知道如何将其放入的正确语法loadUrl
:
class JavaScriptTokenSubstractInterface {
@JavascriptInterface
@SuppressWarnings("unused")
fun processHTML(html: String) {
Log.d("","html shown is loading and not the result.")
}
}
val webView: WebView = findViewById(R.id.webView)
webView.settings.javaScriptEnabled = true
webView.settings.useWideViewPort = true
webView.requestFocus(View.FOCUS_DOWN)
webView.addJavascriptInterface(JavaScriptTokenSubstractInterface(), "HTMLOUT")
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(webView: WebView?, url: String?) {
super.onPageFinished(webView, url)
Thread.sleep(3000)
webView?.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');")
}
}
webView.loadUrl("www.someWebPageThatIsLoading.nl")
会发生什么: 1. 显示页面加载 2. 触发 processHTML 并显示加载页面的 HTML 3. 几秒钟后页面加载完成
processHTML 应该在加载完成后触发。
解决方案
推荐阅读
- android - 通过 Safe Args 将数据传回之前的 Fragment。这怎么可能?
- python - 如何检查点是否在多边形 shapefile 内? pandas
- uml - 为财务软件设计领域模型(类图)
- javascript - React Native 将日期保持为类组件中的状态
- nuget-package - 将 nuget 内容文件夹复制到项目输出文件夹
- java - 在 Java 中使用 .repeat() 方法时找不到符号(代码在 Netbeans 中运行)
- go - 如何在 gowsdl 上添加 AuthHeader
- python - 如何在 python 中导入 csv 文件中的变量值?
- php - Mysql 插入 jQuery $(this).attr('id')
- python - Key Error: 1 在处理上述异常的过程中,又发生了一个异常