[英]UIWebView loadRequest: continuously failing with NSURLErrorTimedout in iOS 6
UIWebView
中的本机连接启动失败并出现超时问题。 一旦超时开始,只有硬退出的应用程序才能解决它。
超时随机开始,但一旦启动,只有硬退出才能解决它。
因为硬退出正在解决它,它是一个客户端而不是服务器问题。 但是使用UIWebView
的可用API,我无法弄清楚问题。
到目前为止只能在iOS6 iPhone和iPad上看到它。 我每次都在点击相同的URL,我正在缓存JS,CSS资源(可能是iOS6 webview缓存有问题)。
//code
//usual webview loading code
//except I am setting cookies everytime before load request
- (void)viewDidLoad
{
[super viewDidLoad];
self.webview.delegate = self;
NSString * urlString;
urlString = @"https://www.myserver.com/";
NSURL * url = [NSURL URLWithString:urlString];
// I create and set some cookies here.
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookies forURL:self.mobilePageURL mainDocumentURL:self.mobilePageURL];
[self.webview loadRequest:[NSURLRequest requestWithURL:url]];
}
-(void)webViewDidStartLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
if([error.domain isEqualToString:NSURLErrorDomain] && error.code != NSURLErrorCancelled)
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
UIAlertView * alert = [[UIAlertView alloc] init];
NSString * errorMessage = [NSString stringWithFormat:@"%d",error.code];
[alert setMessage: errorMessage];
[alert addButtonWithTitle:@"Ok"];
[alert show];
}
}
您可以像这样更改NSURL代码行:
NSURL * url = [NSURL URLWithString:rephrasing[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
也许它会解决你的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.