gpt4 book ai didi

android - 与 Jetpack Compose 一起使用时,WebView 在输入时崩溃

转载 作者:行者123 更新时间:2023-12-03 16:32:08 32 4
gpt4 key购买 nike

当创建一个简单的 WebView使用 Jetpack Compose 进行包装,当我输入任何文本时,应用程序就会崩溃。这是一个错误,还是我在做一些愚蠢的事情?相关代码:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
WebViewC()
}
}
}

@Composable
fun WebViewC() {
return AndroidView(viewBlock = { context ->
WebView(context).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
return false
}
}
loadUrl("https://google.com")
}
})
}
迷恋;撞车;崩溃:
E/MessageQueue-JNI: java.lang.IllegalStateException: KeyEvent can't be processed because this key input node is not active.
at androidx.compose.ui.input.key.KeyInputModifier.processKeyInput(KeyInputModifier.kt:62)
at androidx.compose.ui.platform.AndroidComposeView.sendKeyEvent(AndroidComposeView.kt:173)
at androidx.compose.ui.platform.AndroidComposeView.dispatchKeyEvent(AndroidComposeView.kt:177)

最佳答案

如果要动态更改 url,还需要添加更新方法。

@SuppressLint("SetJavaScriptEnabled")
@Composable
fun WebPageScreen(urlToRender: String) {
AndroidView(factory = {
WebView(it).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
webViewClient = WebViewClient()
loadUrl(urlToRender)
}
}, update = {
it.loadUrl(urlToRender)
})
}

关于android - 与 Jetpack Compose 一起使用时,WebView 在输入时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65136940/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com