WKWebView 实例可以在加载时显示网页吗?

Posted

技术标签:

【中文标题】WKWebView 实例可以在加载时显示网页吗?【英文标题】:Can WKWebView instance show webpage while it is loading? 【发布时间】:2017-06-20 10:39:24 【问题描述】:

我正在使用 WKWebView 浏览特定网站。 WKWebView 实例通过 URL 使用方法 load(_ request: URLRequest) -> WKNavigation? 加载网站的初始页面直到加载请求未完成,我看到白屏。 WKWebView 可以在网页的其余部分正在加载时显示网页的已加载部分吗? UIWebView 能做到这一点吗?

【问题讨论】:

我认为这取决于网络是否支持渐进式加载,而不是 WKWebView 本身? @Tj3n,你的意思是网页本身吗?不知道是否支持这个功能。这不是我的网站。我该如何检查? 【参考方案1】:

如果白屏是您的问题,我建议您在 webView 上显示自定义 进度指示器或在 webView 上显示一些动画视图

加载完成后隐藏进度指示器。

在以下位置开始您的动画:

 optional func webView(_ webView: WKWebView, 
    didStartProvisionalNavigation navigation: WKNavigation!)

//Start Progress indicator animation

结束/隐藏您的动画/进度视图:

    optional func webView(_ webView: WKWebView, 
                didFinish navigation: WKNavigation!)

      //Stop Progress indicator animation

【讨论】:

【参考方案2】:

在我的情况下,当我将委托 WKWebViewNavigationDelegate 添加到 WKWebview 和函数时,渐进式加载开始工作

func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)

如果没有添加这个函数,在所有情况下,在所有内容下载之前网页都没有渲染

【讨论】:

以上是关于WKWebView 实例可以在加载时显示网页吗?的主要内容,如果未能解决你的问题,请参考以下文章

android中webview 怎么实现网页加载时显示加载进度

iOS:当 WKWebView 获取运动传感器时显示一个白色方块

Forge Viewer - 我们可以在加载的模型上进行选择/突出显示并保存在数据库中,以便我们可以在下次用户加载时显示该选择吗?

android中webview 怎么实现网页加载时显示加载进度?

android中webview 怎么实现网页加载时显示加载进度

如何在加载延迟加载的路由组件时显示“加载”动画?