ios中webview的DidFinishLoad就是成功吗?

我们在应用中经常会用到webview可以有时候我们需要在加载完成后去处理一些其他的问题,常常事与愿违。因为我们调用webview的代理方法- (void)webViewDidFinishLoad:(UIWebView *)webView 可是这个方法是真的加载完成吗?其实不然,这个方法的描述其实是访问到了web的地址资源调用已经完成,但是不代表内容已经加载完成。所以这个时候我们应该首先去调用webView.isLoading 确认资源在loading中,然后使用拦截js代码
NSString *readyState = [webView stringByEvaluatingJavaScriptFromString:@"document.readyState"];
BOOL complete = [readyState isEqualToString:@"complete"];
这个complete才是真正资源加载完成 ,如此便可以顺利的判断资源加载完成后的方法了。
关于这个字段共有5种状态:
1、uninitialized : 还没开始加载
2、loading : 加载中
3、loaded : 加载完成
4、interactive : 结束渲染,用户已经可以与网页进行交互。但内嵌资源还在加载中
5、complete : 完全加载完成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整体介绍 UIWe...
    F麦子阅读 5,010评论 0 2
  • 正常情况下我们把处理网页加载完毕的代码放在 - (void)webViewDidFinishLoad:(UIWeb...
    xuyafei86阅读 41,024评论 24 163
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,978评论 25 709
  • IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...
    学无止境666阅读 45,955评论 5 53
  • 这一年,我们在上海你曾上学的地方游荡; 我们吃遍了西安回民街里的所有美食; 我们在青岛大海边吵过架; 这一年 你拉...
    大大大K阅读 3,122评论 0 1

友情链接更多精彩内容