developerWab
developerWab
采纳率69.1%
2013-04-16 09:22 阅读 2.9k
已采纳

ios-UIWebView 调用失败

有一个可以正常运行的UIWebView。delegates也运行正常,在打开URL时,事件 shouldStartLoadWithRequestwebViewDidFinishLoad 都会激活。
但是在打开google 搜索结果时,只有**shouldStartLoadWithRequest**激活。webViewDidFinishLoad 则无法调用。

造成原因是,因为如果我在shouldStartLoadWithRequest放一个‘加载’指示器,在页面正确加载之后,指示器还是继续运行。

这有什么好的解决方法么?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    love_loveec love_loveec 2013-04-17 03:06

    google使用的ajax,在一个有效的新资源加载到webView中才会调用webViewDidFinishLoad delegates方法。相当于一个页面加载在浏览器里,由于google使用的ajax,所以不能引起方法的触发。

    没有方法能检测是否部分页面被加载了(javascript,样式表,或者ajax响应)。

    你可以做的事是检测webView的javascript判断页面的高度,根据页面高度的变换可以判断哪些完成。你还可以想一些其他的方法来检测哪些搜索查询发生变化了,不过我的方法可以用于google初始页面的结果。

    每几秒检测一次JS就可以了。

    点赞 1 评论 复制链接分享

相关推荐