gpt4 book ai didi

iphone - UIWebView 和超时

转载 作者:行者123 更新时间:2023-12-03 18:40:17 25 4
gpt4 key购买 nike

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

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

最佳
–f

更新

我构建了一个测试项目来验证我的关于 UIWebView 如何处理超时的“理论”。设置如下:

  • 一个名为 sleep.php 的 PHP 文件,其中有一个参数,我可以使用该参数配置在发送结果之前的休眠时间
  • 一个带有单个 View 的小型 Xcode 项目,它是一个加载 sleep.php 的 webView,如下所示:

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

因此,在使用秒参数时,我可以看到 UIWebView 正常工作。根据超时情况,我会得到 webViewDidFinishLoad:webView:didFailLoadWithError:

在验证了 timeoutInterval 是否如宣传的那样工作后,我引入了 proxy.php(其中有两个指向 sleep.php 的链接,配置了 5 秒和 15 秒)来查看我的请求配置是否仍然有效对新请求有效。我更改了初始 NSURLRequest 以使用 proxy.php,但保留了 10 秒的超时配置。

当我启动应用程序时,会显示两个链接。当我单击第一个时,它会在 5 秒后按预期加载。不幸的是,第二个链接也在 15 秒后加载。

因此,我第一次尝试重新配置 NSURLRequest 是在 webView:shouldStartLoadWithRequest:navigationType: 中更改它。不幸的是,Web 服务与 AJAX 一起使用,因此委托(delegate)方法不会被调用。

还有其他建议吗?有没有办法全局配置整个UIWebView的超时值?

最佳
–f

最佳答案

您可能有兴趣使用您自己的自定义 NSTimer 观看 UIWebView 委托(delegate) webViewDidFinishLoading

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

关于iphone - UIWebView 和超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com