用onKeyDown方法写一个让WebView强制返回上一页的代码,在MainActivity中使用,Kotlin
时间: 2023-06-26 19:04:29 浏览: 157
下面是使用 Kotlin 在 MainActivity 中重写 onKeyDown 方法,实现让 WebView 强制返回上一页的代码:
```kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack()
return true
}
return super.onKeyDown(keyCode, event)
}
```
在这个代码中,我们首先判断按下的键是否为返回键,并且 WebView 是否可以返回上一页。如果可以,我们就调用 WebView 的 goBack() 方法返回上一页,并且返回 true,表示事件已经被处理了。如果不能返回上一页,我们就调用父类的 onKeyDown 方法处理事件。
相关问题
用Kotlin写一个设置WebView强制返回上一页的代码
可以通过重写 WebView 的 onKeyDown 方法来实现强制返回上一页的功能,以下是 Kotlin 代码示例:
```kotlin
class MyWebView : WebView(context) {
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && canGoBack()) {
goBack()
return true
}
return super.onKeyDown(keyCode, event)
}
}
```
这里自定义了一个 MyWebView 类,继承自 WebView,重写了 onKeyDown 方法。当用户点击返回键且 WebView 可以返回上一页时,调用 goBack 方法强制返回上一页,并返回 true 表示事件已被消费,否则返回 super.onKeyDown(keyCode, event) 表示交由父类处理。
我意思是MainActivity: onKeyDown:97 keyFilfer:false 06-09 18:26:12.142 4045 4045 D MainActivity: onKeyDown:4 keyFilfer:false
抱歉,我误解了您的问题。根据您提供的信息,这是 MainActivity 中的 onKeyDown 方法的日志输出。其中,第一个参数 97 和第二个参数 4 分别表示按下的键码值,即 KEYCODE_A 和 KEYCODE_DPAD_LEFT。第三个参数 keyFilter 为 false,表示没有过滤器处理该按键事件。
阅读全文