【问题标题】:UIWebview slow loading secured pageUIWebview 缓慢加载安全页面
【发布时间】:2012-02-07 18:20:04
【问题描述】:

我有一个使用 UIWebView 加载的网站,当使用 Apache 的基本身份验证类型进行保护时,该网站在加载时出现了一些问题:

NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:pass@mysite.mydomain.com"];
NSURL *url = [NSURL URLWithString:myUrlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
[webView loadRequest:requestObj];

初始加载在大多数情况下都有效,但有时,尤其是在重新加载应用时回调

- (void)webViewDidFinishLoad:(UIWebView *)webViewloc

没有达到,也没有碰到

-(void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error

如果我使用不带 .htaccess 的其他服务器来保护页面,则一切正常。

我还在访问日志中看到,它有时只是停止从页面加载。

这与cachePolicytimeoutInterval 有关吗?

【问题讨论】:

  • 你能增加 timeoutInterval 值还是你不想这样做?
  • @Mathboy 我已经这样做了。没有改变一件事。我确实将它设置为 320.0,但有时它仍然会停止加载。

标签: iphone objective-c ipad webview


【解决方案1】:

您可以尝试自己管理来自服务器的身份验证挑战,因为 UIWebView 似乎无法处理它。

这需要设置您自己的 NSURLRequest/Connection 并在 connection:didReceiveAuthenticationChallenge 委托方法中处理挑战,然后再尝试在您的 UIWebView 中加载实际的 html 页面。

您可以为 GET 请求找到 full sample code here。您还可以查看第三方网络框架,该框架可以更轻松地处理通信和挑战(例如,ASIHTTPRequest,尽管它现在处于“冻结”状态,但它运行良好;或 AFNetworking

【讨论】:

  • UIWebView 无法打开窗口询问。但它接受用户名:密码 URL。只是有时在应用中打开网站最多需要3次才能完全加载...
  • 我只是尝试一下我建议的方法,它可能会从加载过程中消除任何“不确定性”(“最多三倍”)。
  • @sergio 我也面临同样的问题,但随机。我觉得您的回答将帮助我解决问题。但我没有告诉你如何将 NSURLRequest/NSURLConnection 设置为 Web 视图。在我的代码中,我使用 Url 创建了一个 NSURLRequest 对象,并在我的 Web 视图 obj 上调用 loadRequest。您能否详细说明设置自己的连接对象,这对我有很大帮助。提前致谢
  • @Dinakar:您可以在此处获得有关使用自己的 NSURLConnection 和 UIWebView 的完整示例:stackoverflow.com/questions/1769888/…
  • @sergio 感谢您的帮助,看起来运行良好。不幸的是,我碰巧在“设置”应用程序中恢复了我的设置,现在我可以检查代码是否解决了实际问题。 :) 恢复设置解决了没有上述代码更改的问题......但我不能要求我的用户这样做..因此集成了代码并想检查它是否有效..最后的问题是有没有办法测试代码(重现问题并检查代码是否解决了问题)
【解决方案2】:
NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:pass@mysite.mydomain.com"];
NSURL *url = [NSURL URLWithString:myUrlAddress];
[webView loadRequest:[NSURLRequest requestWithURL:url]];

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多