About iOS webview load commpletly

  如何判断webview彻底加载完成,仅仅依靠 webViewDidFinishLoad是不能确定的,因为一个页面可能会多次回调该函数(加载图片,加载js file,加载css,都有可能调用),

在网上找到两种解决方案:

1.http://stackoverflow.com/questions/908367/uiwebview-how-to-identify-the-last-webviewdidfinishload-message

estimatedProgress:可以根据该参数获得当前网页的加载进度

要注意的是我们用的webview 是UIKit的 UIWebView,但 estimatedProgress是WebKit的 WebView参数,用起来可能大有不同,具体怎么用看这里:http://winxblog.com/2009/02/iphone-uiwebview-estimated-progress/;

但是这个东西是苹果的私有api,如果用了就会被苹果拒掉.




2.http://stackoverflow.com/questions/1842370/uiwebview-didfinishloading-fires-multiple-times

使用webview的loading属性进行判断;

  - (void)webViewDidFinishLoad:(UIWebView *)webView {
       NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
            (webView.loading?@"NO":@"YES"));
    }


    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
       NSLog(@"didFail: %@; stillLoading:%@", [[webView request]URL],
            (webView.loading?@"NO":@"YES"));
    }
当一个网页加载的时候,完成一个file就调用 webViewDidFinishLoad,但是如果还有其他加载项, webView. loading就是YES,否则就是NO; 我得测试连接

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.2cto.com/kf/201110/108433.html"]]];

总共调用webViewDidFinishLoad 16次,前15次loading=YES;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值