diff --git a/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt index d47246d..6b1c6d8 100644 --- a/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt +++ b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt @@ -11,9 +11,11 @@ import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient import androidx.core.os.postDelayed +import ru.touchin.roboswag.webview.web_view.redirection.IgnoredUrlsHolder open class BaseWebViewClient( private val callback: WebViewCallback, + private val ignoredUrlsHolder: IgnoredUrlsHolder = IgnoredUrlsHolder(), private val isSslPinningEnable: Boolean = true ) : WebViewClient() { @@ -81,6 +83,7 @@ open class BaseWebViewClient( * onReceivedError isn't called when url is "about:blank" (url string isBlank) */ override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) { + if (ignoredUrlsHolder.shouldIgnoreError(request.url.toString())) return isError = true } diff --git a/webview/src/main/java/ru/touchin/roboswag/webview/web_view/redirection/IgnoredUrlsHolder.kt b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/redirection/IgnoredUrlsHolder.kt new file mode 100644 index 0000000..90a6237 --- /dev/null +++ b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/redirection/IgnoredUrlsHolder.kt @@ -0,0 +1,15 @@ +package ru.touchin.roboswag.webview.web_view.redirection + +/** + * Define some urls here which errors should be ignored while redirection to prevent show error screen + */ +class IgnoredUrlsHolder( + private val ignoredUrlsList: List = listOf( + "https://stats.g.doubleclick.net/" + ) +) { + + constructor(vararg urls: String) : this(urls.toList()) + + fun shouldIgnoreError(url: String) = ignoredUrlsList.any { url in it } +}