Однако вместо сайта я получаю просто белый экран , без ошибок и т. д.
Можете ли вы посмотреть, что я сделал не так?
Мой код:
Основная активность
Код: Выделить всё
private fun initWebView() {
binding.mainWebView.webViewClient = MyWebClient()
binding.mainWebView.settings.javaScriptEnabled = true
binding.mainWebView.settings.cacheMode = WebSettings.LOAD_DEFAULT
binding.mainWebView.settings.domStorageEnabled = true
binding.mainWebView.settings.blockNetworkImage = false
binding.mainWebView.settings.blockNetworkLoads = false
binding.mainWebView.settings.loadsImagesAutomatically = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
binding.mainWebView.settings.safeBrowsingEnabled = false
}
binding.mainWebView.settings.javaScriptCanOpenWindowsAutomatically = true
binding.mainWebView.settings.allowFileAccess = true
binding.mainWebView.settings.useWideViewPort = true
binding.mainWebView.fitsSystemWindows = true
binding.mainWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null)
binding.mainWebView.loadUrl("https://google.com")
}
Код: Выделить всё
class MyWebClient : WebViewClient() {
val TAG = "===MyWebClient"
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
view!!.loadUrl(request!!.url.toString())
return true
}
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view!!.loadUrl(url!!)
return true
}
override fun onReceivedHttpError(
view: WebView?,
request: WebResourceRequest?,
errorResponse: WebResourceResponse?
) {
Log.i(TAG, "onReceivedHttpError: http error ")
super.onReceivedHttpError(view, request, errorResponse)
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
Log.i(TAG, "onReceivedError: ${error!!.errorCode}")
Log.i(TAG, "onReceivedError: ${error.description}")
}
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
handler!!.proceed()
Log.i(TAG, "onReceivedSslError: ${error}")
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
Log.i(TAG, "onPageStarted: started ${url}")
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
Log.i(TAG, "onPageFinished: finished ${url}")
super.onPageFinished(view, url)
}
}
Код: Выделить всё
Код: Выделить всё
google.com
www.google.com
С в Интернете запросы с использованием Retrofit2 обрабатываются плавно.
Кроме того, onReceivedError, onReceivedSslError и
onReceivedHttpError не фиксируются.
Только onPageStarted и onPageFinished работает
Подробнее здесь: https://stackoverflow.com/questions/781 ... ite-screen
Мобильная версия