iOS UiWebView "Charge de trame interrompue"

J'ai un UiWebView qui pointe vers un site externe qui a une expiration de session de 30 minutes d'inactivité. Dans mon application, une page de connection personnalisée est embeddede à l'application, car je ne peux pas en utiliser une à partir du site distant. Cette page de connection est:

file://index.html 

Lorsque l'user met l'application en arrière-plan, je veux recharger automatiquement ma page de connection si l'application rest en arrière-plan pendant plus de 20 minutes (je sais que ce n'est pas idéal, mais obligé de le faire en raison des exigences métier) .

Mon code pour le faire est assez simple:

 static NSDate *lastActivity = nil; - (void)applicationWillResignActive:(UIApplication *)application { lastActivity = [NSDate date]; } - (void)applicationDidBecomeActive:(UIApplication *)application { NSDate *now = [NSDate date]; NSTimeInterval time = [now timeIntervalSinceDate:lastActivity]; if(time > 60 * 20){ UIWebView *view = self.viewController.webView; NSURL *url = [NSURL URLWithSsortingng:self.viewController.startPage]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [view loadRequest:request]; } } 

Cependant quand je fais ceci je reçois l'erreur:

 Failed to load webpage with error: Frame load interrupted 

Je comprends que ce soit parce que quelque chose passe automatiquement d'un schéma d'URL à un autre sans interaction de l'user. Y a-t-il un moyen de faire cela?

Je pense que vous devrez gérer le protocole file: // dans une méthode déléguée UIWebView. par exemple.

 - (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { // Intercept the external http requests and forward to Safari.app // Otherwise forward to the PhoneGap WebView if ([[url scheme] isEqualToSsortingng:@"http"] || [[url scheme] isEqualToSsortingng:@"https"]) { [[UIApplication sharedApplication] openURL:url]; return NO; } else { return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; } } 

Dans votre cas, dites à la méthode délégataire ce que vous devez faire avec votre schéma d'URL. par exemple.

 if ([url.scheme isEqualToSsortingng:@"file"]) { NSLog(@"Open start page"); [[UIApplication sharedApplication] openURL:url]; return NO; } 

Je ne sais pas si cela fonctionnera pour vous, mais j'espère que cela vous permettra de find une solution.