UIWebview缓慢加载安全页面

时间:2012-01-11 11:32:09

标签: iphone objective-c ipad webview

我有一个网站,我正在加载一个UIWebView,在使用Apache的基本Authtype保护时加载时遇到一些问题:

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

有关吗?

2 个答案:

答案 0 :(得分:0)

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

这需要设置您自己的NSURLRequest / Connection并在尝试加载connection:didReceiveAuthenticationChallenge中的实际html页面之前,使用UIWebView委托方法处理质询。

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

答案 1 :(得分:0)

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