UIWebView - 删除加载指示器,在图像完成下载之前,但在渲染 webView 之后



我知道可以使用通常的UIWebView委托方法实现加载UIView webViewDidStartLoad:webViewDidFinishLoad:

但是,这种方法意味着您必须等待所有图像和.gif完全下载,然后再删除加载视图。 由于默认情况下UIWebView异步(延迟)在页面上加载图像,因此我想在呈现页面时删除加载视图,但不一定等到图像全部下载完毕。

我还没有找到任何这方面的资源,但我确信它已经完成,因为它是一个非常重要的优化。 有什么想法吗?

在这个问题的帮助下,你可以在 DOM 完成加载时使用 JavaScript 更改 UIWebView 的窗口位置,就像这样 (jQuery):

$(document).ready(function(){
    location.href = http://removeLoadingScreen
})

然后使用 UIWebView 委托方法选取该链接并删除加载屏幕:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = request.URL;
    if([[url absoluteString] isEqualToString:@"http://removeLoadingScreen"]){
        // remove loading screen
    }
}

图像和.gif尚未下载,但页面的其余部分将下载。 一个缺点是图像的空间可能会也可能不会被阻止,因此一旦图像出现,文本内容可能会跳到页面下方。

最新更新