【问题标题】:Kotlin: Getting "Modifier 'override' is not applicable to 'local function'" error when try to add onReceivedError on a WebViewKotlin:尝试在 WebView 上添加 onReceivedError 时出现“修改器‘覆盖’不适用于‘本地函数’”错误
【发布时间】: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()
        }
    }
}

【问题讨论】:

    标签: android kotlin webview overriding


    【解决方案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()
                }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      相关资源
      最近更新 更多