如何立即知道WebView for iOS中显示的内容

时间:2017-03-15 03:30:00

标签: ios objective-c webview uiwebview wkwebview

对于iOS中的UIWebviewWKWebview,委托方法:

webViewDidFinishLoad:(UIWebView *)webView

(void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation
当所有资源成功加载时调用

,但是,在调用这些方法之前,内容已显示几秒钟。

现在,我想观察内容在Webview上显示的时间,任何有好主意的人请告诉我,谢谢。

2 个答案:

答案 0 :(得分:1)

您必须使用WKWebView来跟踪加载进度。

首先,你必须添加观察者来听取进展。

[self.webView addObserver:self forKeyPath:@"loading" options:NSKeyValueObservingOptionNew context:nil];
[self.webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil];

然后当网页开始加载时,您将使用此方法处理:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    if ([keyPath isEqualToString:@"loading"]) {
        if (!self.webView.isLoading) {
            // Finished loading.
        }

    }
    else if ([keyPath isEqualToString:@"estimatedProgress"]){
          float progress = _webView.estimatedProgress; // Do whatever you want with the progress        
    }
}

此外,当Web视图开始加载内容时,将调用此委托方法:

- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation{
    // The web starts loading contents. 
}

答案 1 :(得分:-1)

Webview确实在加载整个网站时调用了加载。

您的网站必须在加载html后加载一些javascript和css脚本。

因此,当javascript仍在加载时,会显示网站。

因此,一旦加载了所有内容,整个网站就会被加载。

理想的解决方案是向用户展示。进步。