UIWebView showing blank screen in iOS 8(UIWebView 在 iOS 8 中显示空白屏幕)
本文介绍了UIWebView 在 iOS 8 中显示空白屏幕的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个应用程序,我可以在其中下载 pdf 并将其存储在 iPhone 中.它在 iOS 7 中运行良好(我目前在 iOS 8 上运行)并且在 iOS 8 中运行应用程序时,webView 只是保持空白.我不知道出了什么问题.
I have an app where I can download a pdf and store it in the iPhone. It worked perfectly in iOS 7 (I am currently running on iOS 8) and while running the app in iOS 8, the webView just stays blank. I have I no idea what's wrong.
#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, 0), ^{
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 的 bug!您可以使用以下方法解决它:
It's an iOS 8 bug! You can work around it using:
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];
这篇关于UIWebView 在 iOS 8 中显示空白屏幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:UIWebView 在 iOS 8 中显示空白屏幕
基础教程推荐
猜你喜欢
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01