Android WebView не может загрузить веб-страницу и возвращает белый экранJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Android WebView не может загрузить веб-страницу и возвращает белый экран

Сообщение Гость »

Я пытаюсь создать простое приложение с помощью WebView, которое должно просто открывать сайт «google.com»
Однако вместо сайта я получаю просто белый экран , без ошибок и т. д.
Можете ли вы посмотреть, что я сделал не так?
Мой код:
Основная активность

Код: Выделить всё

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)
}
}
Манифест Android network_security_config

Код: Выделить всё



google.com
www.google.com



Я использую ClearTextTraffic, и Network Security, а также различные примеры из Интернета, но мне ничего не помогает...
С в Интернете запросы с использованием Retrofit2 обрабатываются плавно.
Кроме того, onReceivedError, onReceivedSslError и
onReceivedHttpError не фиксируются.
Только onPageStarted и onPageFinished работает

Подробнее здесь: https://stackoverflow.com/questions/781 ... ite-screen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»