fix webview

- фикс пропадающей ошибки об отстутствии интернета (вместо неё появлялся пустой error_layout)
- фикс скролла + увеличение производительности
This commit is contained in:
Denis Markwald 2021-05-24 21:21:11 +02:00
parent df8088879a
commit dc0e6d63cf
2 changed files with 13 additions and 3 deletions

View File

@ -128,12 +128,14 @@ open class BaseWebView @JvmOverloads constructor(
open fun setWebViewPreferences() {
binding.webView.apply {
scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY
setLayerType(View.LAYER_TYPE_SOFTWARE, null)
setLayerType(View.LAYER_TYPE_HARDWARE, null)
with(settings) {
loadsImagesAutomatically = true
javaScriptEnabled = true
domStorageEnabled = true
loadWithOverviewMode = true
useWideViewPort = true
setInitialScale(1)
}
}
}

View File

@ -33,12 +33,18 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
}
}
/**
* onPageFinished calls always, but after onReceivedError
*/
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
isTimeout = false
if (!isError) {
callback.onPageCookiesLoaded(CookieManager.getInstance().getCookie(url).processCookies())
}
if (url == "about:blank") {
isError = true
}
pageFinished()
}
@ -56,11 +62,13 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
}
}
/**
* onReceivedError don't calls when url is "about:blank" (url string isBlank)
*/
override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) {
if (!(error.errorCode == -10 && "about:blank" == request.url.toString()) || request.url.toString().isBlank()) {
if (error.errorCode != -10) {
isError = true
}
pageFinished()
}
private fun pageFinished() {