用Kotlin写一个设置WebView强制返回上一页,完整的代码,在MainActivity中使用
时间: 2023-06-26 20:04:34 浏览: 161
TestWebView.zip
好的,以下是完整的代码:
```kotlin
import android.os.Bundle
import android.webkit.WebView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)
webView.settings.javaScriptEnabled = true // 开启JavaScript支持
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url)
return true
}
}
webView.loadUrl("https://www.example.com")
}
override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
}
```
在上述代码中,我们首先在 `onCreate` 方法中初始化了一个 `WebView` 对象,并且开启了 JavaScript 支持。然后我们设置了 `webViewClient`,该对象中重写了 `shouldOverrideUrlLoading` 方法,让 WebView 在加载新的 URL 时不会打开系统默认的浏览器,而是继续在 WebView 中进行加载。
最后,我们重写了 `onBackPressed` 方法,在用户点击返回按钮时,如果 WebView 可以返回上一页,则调用 `webView.goBack()` 方法,否则调用 `super.onBackPressed()` 方法,即退出当前 Activity。
阅读全文