我们在应用中经常会用到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 : 完全加载完成
ios中webview的DidFinishLoad就是成功吗?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 正常情况下我们把处理网页加载完毕的代码放在 - (void)webViewDidFinishLoad:(UIWeb...
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...