【问题标题】:WebView detect when website has loaded successfullyWebView 检测网站何时加载成功
【发布时间】:2020-05-04 16:44:09
【问题描述】:

如何检测 WebView 网站何时成功加载并出现 NO 错误。我试过onPageFinished,但当互联网连接失败时它仍然会被调用。当网站成功加载且没有错误(并且没有“网站不可用”)时,我想让我的视图再次可见

这是我目前使用的,甚至在请求出现错误时调用(例如,没有互联网等)

override fun onPageFinished(view: WebView?, url: String?) {
    super.onPageFinished(view, url)

    view?.visibility = View.VISIBLE
    rootView.loadingSpinner.visibility = View.INVISIBLE
}

【问题讨论】:

    标签: android kotlin webview


    【解决方案1】:

    执行此操作的一种方法:使用此(已弃用但仍可使用)api。将针对您正在加载的主 url 调用,而不是像较新版本的每个 Web 资源。这应该同时处理没有互联网连接和 http 错误响应。

    @SuppressWarnings("deprecation")
    override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
    //hide it, etc...
                  // println("ON receive error:  $errorCode  $description  $failingUrl")
    }
    

    【讨论】:

    • 需要知道什么时候没有错误。我不需要知道是否有错误。我只需要一个可以确定请求成功的函数
    • 这是函数。您在此处放置一个标志,表明发生了错误,并在完成的页面中执行您需要的任何操作
    • 这个函数是在onPageFinished之前调用的吗?
    • 不需要使用已弃用的。正常的工作正常
    • 我如何检测它是否因互联网连接不良而失败?
    猜你喜欢
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2016-02-01
    • 2014-05-10
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多