在 WebView 中检测到空白网页 android
Detect a blank webpage in WebView android
我想知道是否有一种方法可以使用 webview 检测空白网页。
实际上,这是一个大学应用程序,因此,如果该应用程序加载一个空白页面并且当我遇到一个空白页面时正在考虑使用 WebView.loadURL("<html><body> <h1>Oops! We have an empty page here</h1></html>")
,它看起来就不会吸引人。
那么有什么办法可以实现吗?
顺便说一句。这是加载的 URL 网页为空的情况,而不是渲染问题或任何所谓的问题!
有两种可能的情况:
- 页面未加载。
- 页面已加载,但为空白。
每个案例的解决方案:
- 将
WebViewClient
附加到您的 WebView
,您可以在其中覆盖 onReceivedError()
以了解有关错误的更多信息。
- 将
WebViewClient
附加到您的 WebView
并在 onPageFinished()
中使用 javascript 检查 <body>
有多少个子节点。如果它没有子节点,您可以显示默认的 html 页面。
要获取子节点的数量,您可以像这样使用 javascriptInterface
class:
webView.loadUrl("javascript: var count = document.body.childNodes; jsInterface.childCount(count.length);")
我想知道是否有一种方法可以使用 webview 检测空白网页。
实际上,这是一个大学应用程序,因此,如果该应用程序加载一个空白页面并且当我遇到一个空白页面时正在考虑使用 WebView.loadURL("<html><body> <h1>Oops! We have an empty page here</h1></html>")
,它看起来就不会吸引人。
那么有什么办法可以实现吗?
顺便说一句。这是加载的 URL 网页为空的情况,而不是渲染问题或任何所谓的问题!
有两种可能的情况:
- 页面未加载。
- 页面已加载,但为空白。
每个案例的解决方案:
- 将
WebViewClient
附加到您的WebView
,您可以在其中覆盖onReceivedError()
以了解有关错误的更多信息。 - 将
WebViewClient
附加到您的WebView
并在onPageFinished()
中使用 javascript 检查<body>
有多少个子节点。如果它没有子节点,您可以显示默认的 html 页面。
要获取子节点的数量,您可以像这样使用 javascriptInterface
class:
webView.loadUrl("javascript: var count = document.body.childNodes; jsInterface.childCount(count.length);")