iOS 6 UIWebView委托方法
问题描述:
我有一个UIWebView加载在远程服务器上托管的页面。在准备好文档之后,它会向服务器发出一个异步的jQuery.ajax请求,以从服务器返回的值列表填充下拉列表。iOS 6 UIWebView委托方法
当它加载页面并执行此请求时,我有一个半透明的UIView和覆盖UIWebView的UIActivityIndicator。我已经实现了删除加载视图的webViewDidFinishLoad委托方法。
- 在iOS 4/5中,这个代理方法在异步请求完成后执行。这是我想要的行为。
- 在iOS 6中,此委托方法在异步请求完成之前执行并且加载视图过早消失。
有谁知道这是故意的。任何想法如何解决这个问题?
谢谢!
答
我得出的结论是,这是一个有意的变化。本质上,如iOS 6的的,webkit的异步绘制其内容:
因此在文档加载的异步请求将是真正异步的。 UIWebView的委托将被通知文档已经完全加载,而这个请求正在执行。在iOS 6之前,此通知将在异步请求完成后执行。所以这个请求并不是真正的异步。
Fergal。
您确定请求得到执行吗?可能请求获取缓存,如下所述:[iOS 6上的Safari是否缓存$ .ajax结果?](http://stackoverflow.com/questions/12506897/is-safari-on-ios-6-caching-ajax-results ) –
感谢您的回应。 jQuery ajax请求使用jsonp,所以每次都有一个唯一的回调方法作为参数传递,所以它不应该缓存它。我还验证了使用代理的请求是每次200。服务器的缓存控制响应头也是“no-cache”。您提供的链接中的答案之一就是建议让“无缓存”解决问题。 –
在beta更改日志中,我看到:在iOS 6及更高版本中,UIWebView类异步地绘制其内容。我想知道它与此有关吗? –