UIWebView montrant un écran vide dans iOS 8

J'ai une application où je peux download un pdf et le stocker dans l'iPhone. Cela a fonctionné parfaitement dans iOS 7 (je cours actuellement sur iOS 8) et pendant le fonctionnement de l'application dans iOS 8, le webView rest vide. Je n'ai aucune idée de ce qui ne va pas.

#import "ISJMMisalViewController.h" #import "SWRevealViewController.h" @implementation ISJMMisalViewController @synthesize activityImageView; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; [self.webView addSubview:activityImageView]; [activityImageView startAnimating]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSSsortingng *resourceDocPath = [[NSSsortingng alloc] initWithSsortingng:[[[[NSBundle mainBundle] resourcePath]ssortingngByDeletingLastPathComponent] ssortingngByAppendingPathComponent:@"Documents"]]; NSSsortingng *filePath = [resourceDocPath ssortingngByAppendingPathComponent:@"misalLocal.pdf"]; //Now create Request for the file that was saved in your documents folder NSURL *url = [NSURL fileURLWithPath:filePath]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; dispatch_async(dispatch_get_main_queue(), ^{ [self.webView setUserInteractionEnabled:YES]; [self.webView setDelegate:self]; [self.webView loadRequest:requestObj]; [self.webView setScalesPageToFit:YES]; [activityImageView stopAnimating]; [activityImageView removeFromSuperview]; }); }); } - (void)viewDidLoad { [super viewDidLoad]; [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; UIImage *image = [UIImage imageNamed: @"NavBarImage.png"]; UIImageView *imageView = [[UIImageView alloc] initWithImage: image]; self.navigationItem.titleView = imageView; _sidebarButton.target = self.revealViewController; _sidebarButton.action = @selector(revealToggle:); //Create the first status image and the indicator view UIImage *statusImage = [UIImage imageNamed:@"1.png"]; activityImageView = [[UIImageView alloc] initWithImage:statusImage]; //Add more images which will be used for the animation activityImageView.animationImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], [UIImage imageNamed:@"3.png"], [UIImage imageNamed:@"4.png"], [UIImage imageNamed:@"5.png"], [UIImage imageNamed:@"6.png"], [UIImage imageNamed:@"7.png"], [UIImage imageNamed:@"8.png"], [UIImage imageNamed:@"9.png"], nil]; //Set the duration of the animation (play with it //until it looks nice for you) activityImageView.animationDuration = 0.7; //Position the activity image view somewhere in //the middle of your current view activityImageView.frame = CGRectMake(self.view.frame.size.width/2 - 50, self.view.frame.size.height/2 - 100, 100, 100); UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleNavBar:)]; [self. webView addGestureRecognizer:gesture]; if (!self.webView) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sin conexión" message:@"No fue posible la descarga de datos debido a que no se pudo conectar con el servidor" delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil]; [alert show]; } } - (IBAction)actualizar:(id)sender { [self.webView addSubview:activityImageView]; [activityImageView startAnimating]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithSsortingng:@"http://isjm.weebly.com/uploads/2/5/3/6/25368636/misal.pdf"]]; NSSsortingng *resourceDocPath = [[NSSsortingng alloc] initWithSsortingng:[[[[NSBundle mainBundle] resourcePath]ssortingngByDeletingLastPathComponent] ssortingngByAppendingPathComponent:@"Documents"]]; NSSsortingng *filePath = [resourceDocPath ssortingngByAppendingPathComponent:@"misalLocal.pdf"]; [pdfData writeToFile:filePath atomically:YES]; NSURL *url = [NSURL fileURLWithPath:filePath]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; dispatch_async(dispatch_get_main_queue(), ^{ [self.webView setUserInteractionEnabled:YES]; [self.webView setDelegate:self]; [self.webView loadRequest:requestObj]; [self.webView setScalesPageToFit:YES]; [activityImageView stopAnimating]; [activityImageView removeFromSuperview]; if (!self.webView) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sin conexión" message:@"No fue posible la descarga de datos debido a que no se pudo conectar con el servidor" delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil]; [alert show]; } }); }); } - (void)toggleNavBar:(UITapGestureRecognizer *)gesture { BOOL barsHidden = self.navigationController.navigationBar.hidden; [self.navigationController setNavigationBarHidden:!barsHidden animated:YES]; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; } @end 

C'est un bug iOS 8! Vous pouvez contourner ce problème en utilisant:

 NSSsortingng *ssortingng = [[NSBundle mainBundle] pathForResource:@"Low Cost Perimeter Build Guide" ofType:@"pdf"]; NSURL *url = [NSURL fileURLWithPath:ssortingng]; NSData *pdfData = [[NSData alloc] initWithContentsOfURL:url]; [self.webView loadData:pdfData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 

Le chargement de PDF dans un UIWebView a rendu une page vierge dans les versions bêta d'iOS 8.
J'ai re-testé avec la version officielle iOS 8.0 et ça fonctionne bien maintenant.