Kotlin:尝试在 WebView 上添加 onReceivedError 时出现“修改器‘覆盖’不适用于‘本地函数’”错误
Posted
技术标签:
【中文标题】Kotlin:尝试在 WebView 上添加 onReceivedError 时出现“修改器‘覆盖’不适用于‘本地函数’”错误【英文标题】:Kotlin: Getting "Modifier 'override' is not applicable to 'local function'" error when try to add onReceivedError on a WebView 【发布时间】:2021-12-22 10:27:11 【问题描述】:当我尝试处理 webView 上的错误“修改器'覆盖'不适用于'本地函数'”时出现此错误
如果我在此处删除“覆盖”一词,应用程序会运行,但 webView 不会处理错误,如果我添加“覆盖”一词,则应用程序不会运行
override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError)
webView.loadUrl("about:blank")
Toast.makeText(this, "Favor de conectarse a la red de EJ", Toast.LENGTH_SHORT).show()
这是我的全部代码,目标是在 webView 没有加载目标页面时显示一条消息并加载一个空白页面
package com.example.myApp
import android.os.Bundle
import android.view.WindowManager
import android.webkit.*
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity()
private val BASE_URL = "http://myPage/instruccion/"
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView.webChromeClient = object : WebChromeClient()
webView.webViewClient = object : WebViewClient()
val settings :WebSettings = webView.settings
settings.javascriptEnabled = true
settings.builtInZoomControls = true
settings.setSupportZoom(true)
webView.loadUrl(BASE_URL)
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError)
webView.loadUrl("about:blank")
Toast.makeText(this, "Favor de conectarse a la red de EJ", Toast.LENGTH_SHORT).show()
override fun onBackPressed()
if (webView.canGoBack())
webView.goBack()
else
super.onBackPressed()
【问题讨论】:
【参考方案1】:我刚刚做了一些更改,现在可以工作了,这就是解决方案:
webView.webViewClient = object : WebViewClient()
override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError)
webView.loadUrl("about:blank")
Toast.makeText(this, "Favor de conectarse a la red de EJ", Toast.LENGTH_SHORT).show()
【讨论】:
以上是关于Kotlin:尝试在 WebView 上添加 onReceivedError 时出现“修改器‘覆盖’不适用于‘本地函数’”错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Webview 将对象从 Javascript 发送到 Kotlin
Android Webview 文件和相机上传 - Kotlin
在 Kotlin 中使用 MVVM 实现两种方式的数据绑定 WebView