7

我正在使用 aUIWebView来显示一些内容。在此内容中,用户可以浏览一堆正在使用 AJAX 加载的网站。在这个网站上迈出一步需要相当长的时间。因为我没有找到任何关于 timeoue 的信息,UIWebView所以我试图将它设置为NSURLRequest它加载的初始值。

不幸的是,这似乎没有任何作用。我不太确定我是否应该自己设置超时?有什么我想念的吗?是否UIWebView覆盖我的超时?我对此有点困惑,所以任何帮助将不胜感激。:)

最佳
-f

更新

我建立了一个测试项目来验证我关于UIWebView超时如何工作的“理论”。这是设置:

  • 一个名为 sleep.php 的 PHP 文件,它有一个参数,我可以使用该参数配置睡眠时间,直到它发送结果
  • 一个带有单个视图的小 Xcode 项目,它是一个加载 sleep.php 的 webView,如下所示:

    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:10]; [webView loadRequest:request];

因此,在使用 seconds 参数时,我可以看到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

4

2 回答 2

2

您可能有兴趣 使用自己的自定义观察UIWebView委托。webViewDidFinishLoadingNSTimer

此外,如果您在服务器得到响应之前遇到问题,您可以将超时设置为NSURLConnection on requestWithURL:cachePolicy:timeoutInterval:

于 2011-04-26T09:28:17.853 回答
0

我发现UIWebView它不会NSURLRequest一遍又一遍地使用相同的东西。所以我的回答是,不可能为UIWebView.

于 2011-06-23T13:20:41.010 回答