我正在使用UIWebView
来显示一些内容。在此内容中,用户可以浏览使用AJAX加载的一堆站点。这个网站上的一步需要相当长的一段时间。由于我没有找到关于UIWebView
的时间的任何内容,所以我尝试将其设置在它加载的初始NSURLRequest
上。
不幸的是,这似乎没有做任何事情。我不太确定我是否应该自己设置超时?有什么我想念的吗? UIWebView
是否覆盖了我的超时?我对此有点困惑所以任何帮助都会受到赞赏。 :)
最佳
-f
更新
我建立了一个测试项目来验证UIWebView
如何处理超时的“理论”。这是设置:
一个带有单个视图的Xcode项目,它是一个加载sleep.php的webView,如下所示:
NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:10]; [webView loadRequest:request];
因此,在使用秒参数时,我可以看到UIWebView
正常工作。根据超时情况,我得到webViewDidFinishLoad:
或webView:didFailLoadWithError:
。
在验证timeoutInterval
按照宣传的方式工作后,我带了一个proxy.php(它有两个指向sleep.php配置为5和15秒的链接),看看我的请求配置是否仍然对新的有效要求。我更改了初始NSURLRequest
以使用proxy.php,但将10秒配置保留为超时。
当我启动应用程序时,正在显示两个链接。当我点击第一个时,它会在5秒后按预期加载。不幸的是,第二个链接也会在15秒后加载。
所以我第一次尝试重新配置NSURLRequest
就是在webView:shouldStartLoadWithRequest:navigationType:
中更改它。不幸的是,Web服务与AJAX一起使用,因此不会调用委托方法。
还有其他建议吗?有没有办法全局配置整个UIWebView
的超时值?
最佳
-f
答案 0 :(得分:2)
您可能有兴趣使用自己的自定义UIWebView
观看webViewDidFinishLoading
代理NSTimer
。
此外,如果您遇到问题,直到服务器获得回复,您可以设置NSURLConnection
的超时 requestWithURL:cachePolicy:timeoutInterval:
答案 1 :(得分:-1)
我发现UIWebView
一遍又一遍地使用相同的NSURLRequest
。所以我的答案是,无法全局配置UIWebView
的超时。