2012-11-05 15 views
5

Występuje problem, w którym połączenie natywne w UIWebView zaczyna się nie działać z przekroczeniem limitu czasu. Po rozpoczęciu limitu czasu tylko trudna aplikacja wyjdzie mu z pomocą.UIWebView loadRequest: ciągłe niepowodzenie z NSURLErrorTimedout w iOS 6

Limit czasu rozpoczyna się losowo, ale po uruchomieniu, tylko trudne wyjście go rozwiąże.

Ponieważ trudne wyjście jest rozwiązaniem, jest to problem klienta, a nie serwera. Ale z dostępną API UIWebView nie mogę zrozumieć problemu.

Jest do tej pory widoczne tylko w iOS6 iPhone i iPad. Za każdym razem trafiam w ten sam adres URL i buforuję zasoby JS, CSS (może coś jest nie tak z pamięcią podręczną 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]; 
    } 
} 
+0

wkleić kod ... – Deepesh

Odpowiedz

0

Czy kod linii bibliotece NSURL zmienić tak:

NSURL * url = [NSURL URLWithString:rephrasing[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

Może to rozwiązać problem

Powiązane problemy