2012-01-11 89 views
3

我有一个网站我加载与有问题时与Apache的基本AUTHTYPE确保加载一个UIWebView:UIWebView的加载速度慢担保页

NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:[email protected]"]; 
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

+0

你能增加timeoutInterval值或者你不想这样做? – Ashraf 2012-01-24 04:29:16

+0

@Mathboy我已经做到了。没有改变一件事。我确实将它设置为320.0,但有时它仍然停止加载。 – spankmaster79 2012-01-24 11:06:14

回答

0

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

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

您可以在GET请求中找到full sample code here。你也可以检查到第三方的网络框架,使得处理通信,更容易挑战(例如,ASIHTTPRequest,虽然现在处于“冻结”状态,它工作得很好;或者AFNetworking

+0

UIWebView无法打开窗口并询问。但它接受用户名:密码URL。只是它有时需要最多3次才能在应用程序中打开网站以完全加载... – spankmaster79 2012-01-24 11:07:52

+0

我只想尝试一下我建议的方法,可能会删除任何“不确定性”(“最多三次“)来自加载过程。 – sergio 2012-01-24 11:28:56

+0

@sergio我也面临同样的问题,但随机。我觉得你的回答会帮助我解决这个问题。但我没有让你知道如何将NSURLRequest/NSURLConnection设置为Web视图。在我的代码中,我使用Url创建了一个NSURLRequest对象,并在我的web视图obj上调用了loadRequest。你可以详细说明如何设置自己的连接对象,这对我很有帮助。在此先感谢 – Dinakar 2013-12-10 12:36:59

0
NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:[email protected]"]; 
NSURL *url = [NSURL URLWithString:myUrlAddress]; 
[webView loadRequest:[NSURLRequest requestWithURL:url]];