我有一个应用程序,我可以下载一个pdf并存储在iPhone.它在iOS 7(我目前在iOS 8上运行)运行正常,而在iOS 8中运行应用程序时,webView只是保持空白.我不知道有什么问题.
- #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),^{
- NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath]stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];
- NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"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,^{
- NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://isjm.weebly.com/uploads/2/5/3/6/25368636/misal.pdf"]];
- NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath]stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];
- NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"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
解决方法
这是一个iOS 8的错误!您可以使用以下方式解决:
- NSString *string = [[NSBundle mainBundle] pathForResource:@"Low Cost Perimeter Build Guide" ofType:@"pdf"];
- NSURL *url = [NSURL fileURLWithPath:string];
- NSData *pdfData = [[NSData alloc] initWithContentsOfURL:url];
- [self.webView loadData:pdfData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];