Xcode 7 UIWebView ne charge pas l'URL

J'utilise UIWebView dans mon application et tout a bien fonctionné dans le simulateur Xcode4,5,6. mais pas pour Xcode 7 simulateur, je ne sais pas pourquoi, il n'y a pas d'avertissement ou d'erreur dans le simulateur, et l'écran montre juste une page vierge. Aidez-moi, s'il vous plaît. Merci.

#import "IndexViewController.h" @interface IndexViewController () @end @implementation IndexViewController - (void)viewDidLoad { [super viewDidLoad]; NSSsortingng *urlSsortingng = nil; NSSsortingng *languageCode = [[NSLocale preferredLanguages] objectAtIndex:0]; if ([languageCode isEqualToSsortingng:@"zh-Hans"]) { urlSsortingng = @"http://www.originoftime.net/index-cn"; }else if ([languageCode isEqualToSsortingng:@"zh-Hant"]) { urlSsortingng = @"http://www.originoftime.net/index-cn"; }else{ urlSsortingng = @"http://www.originoftime.net/index-en"; } NSURL *url = [NSURL URLWithSsortingng:[urlSsortingng ssortingngByAddingPercentEscapesUsingEncoding: NSUTF8SsortingngEncoding]]; NSURLRequest *urlrequest = [NSURLRequest requestWithURL:url]; [_Index loadRequest:urlrequest]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } 

Xcode 7 avec iOS9 vous oblige maintenant à ne pas utiliser l'appel HTTP, mais HTTPS.

c'est un sharepoint security amélioré dans AppTransportSecurity.

Essaye ça:

  • Accédez à votre info.plist
  • Ajouter un dictionary appelé NSAppTransportSecurity
  • Ajouter un atsortingbut boolean à celui-ci, appelé NSAllowsArbitraryLoads
  • Passez-le à TRUE

Rechargez votre application

Je vous conseille que si Apple veut bloquer les appels HTTP (non sécurisés), c'est pour une bonne raison. http://www.originoftime.net/index-cn a un HTTPS mais le certificate du server semble être auto-signé.

Faites-moi savoir si cette solution de contournement fonctionne pour vous

Merci de la France

Implémentez-vous les methods de délégué de vue Web? En particulier:

 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 

Si une charge échoue, cela vous dira quel est le problème.

Il pourrait s'agir de l'erreur liée au nouveau model de security qui est appliqué pour l'access au réseau. Vous pouvez replace ce nouveau comportement en ajoutant ce qui suit dans votre file Info.plist. Il suffit de modifier le XML et collez-le dans:

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict> 

Les modifications sont résumées ici: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html