我有一个简单的 Android 活动,它覆盖
onKeyDown
和 onKeyUp
。所有关键事件均正确触发。
当我添加 Web 视图并使用
setOnKeyListener
时,与活动 onKeyUp
和 onKeyDown
处理程序相比,仅触发关键事件的子集。 Web 视图仅触发某些按键,例如音量增大、音量减小、菜单、返回。向上翻页、向下翻页、向左、向右、向上、向下、选择时无法触发。
我尝试扩展 WebView 并重写
onCreateInputConnection
以根据其他一些帖子返回 BaseInputConnection
,但没有效果。
这是因为 webView 正在消耗这些关键事件。您可以在 WebView 使用 keyEvents 之前重写它们,如下所示
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideKeyEvent(view: WebView?, event: KeyEvent?): Boolean {
// Handle key events here
return super.shouldOverrideKeyEvent(view, event)
}
}