有一个可以正常运行的UIWebView。delegates
也运行正常,在打开URL
时,事件 shouldStartLoadWithRequest
和 webViewDidFinishLoad
都会激活。
但是在打开google
搜索结果时,只有**shouldStartLoadWithRequest**
激活。webViewDidFinishLoad
则无法调用。
造成原因是,因为如果我在shouldStartLoadWithRequest
放一个‘加载’指示器,在页面正确加载之后,指示器还是继续运行。
这有什么好的解决方法么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
google
使用的ajax
,在一个有效的新资源加载到webView
中才会调用webViewDidFinishLoad delegates
方法。相当于一个页面加载在浏览器里,由于google
使用的ajax
,所以不能引起方法的触发。
没有方法能检测是否部分页面被加载了(javascript
,样式表,或者ajax
响应)。
你可以做的事是检测webView
的javascript
判断页面的高度,根据页面高度的变换可以判断哪些完成。你还可以想一些其他的方法来检测哪些搜索查询发生变化了,不过我的方法可以用于google初始页面的结果。
每几秒检测一次JS就可以了。