#android #webview
#Android #webview
Вопрос:
Я показываю программно созданное веб-представление во фрагменте нижнего листа. Веб-представление сохраняется в одном элементе, который переживает фрагмент, созданный веб-представлением следующим образом:
webView = WebView(context).let { webView -gt; webView.layoutParams = LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ) webView.clearCache(true) WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG) webView.settings.javaScriptEnabled = true webView.settings.domStorageEnabled = true webView.measure(100, 100) webView.settings.useWideViewPort = true webView.settings.loadWithOverviewMode = true webView.addJavascriptInterface(AndroidJavascriptInterface(environment), webViewHook) webView.webViewClient = webViewClient webView.webChromeClient = webViewChromeClient webView.loadUrl("file:///android_asset/snippet.html") webView }
а затем представьте веб — представление в виде фрагмента нижнего листа следующим образом:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) if (webController == null) { // activity restarted without original context dismiss() } else { webController?.webView?.visibility = View.VISIBLE webController?.let { fragment_web_view?.addView(webController?.webView) } } }
Я наблюдаю за этим нежелательным поведением: Сетевые запросы webview все застревают в ожидании, когда они находятся в фоновом режиме около 2 минут
- Если я сохраняю веб-представление с помощью одного элемента, веб-представление прекращает выполнение сетевого запроса после представления веб-представления, а затем отклоняется
- Если я никогда не представлю фрагмент, веб-представление будет работать нормально, независимо от того, как долго я буду ждать
Запросы начинаются нормально, но через некоторое время остаются в ожидании
Но в этих двух сценариях веб-представление работает нормально.
- Если я сохраню веб-представление на экране, все запросы будут работать нормально.
- Если я продолжу представлять и отклонять веб-представление, все запросы будут работать нормально.
Есть ли что-то, чего я не понимаю в веб-представлении Android, что могло вызвать эту проблему? Чтобы обновить веб-представление, мне нужно повторно инициализировать его, чтобы запросы снова работали.