我在iPad应用程序上使用iOS 6.0.1上的UIWebView显示两个HTML5文档 其中一个没有问题,我可以根据需要打开和关闭webview。 另一个可以显示一次,然后当我关闭我的Web视图并想要再次重新打开文档时,webview显示黑屏。
我自己没有准备HTML5文档,而且我对HTML5知之甚少,所以我无法区分它们导致这种行为。
以下是我创建webview的方式以及如何加载HTML5:
UIWebView *theWebView = [[UIWebView alloc] init];
theWebView.scalesPageToFit = YES;
theWebView.clearsContextBeforeDrawing = YES;
theWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
//adjust frame and add to view controller's view here
NSURL *url = [NSURL URLWithString:@"http://www.handypdf.net/davsan"];
[theWebView loadRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]];
每次打开HTML5文档时,我都会重新创建Web视图。所以我不会重复使用它。
为了解决这个问题,我尝试清理缓存,cookie等等。在these SO解答中解释,但它没有用。
以下是有问题和无问题的HTML文档的链接:
此外,如果您想在线查看这些HTML5页面,请点击以下链接:
iOS 5.x上不会发生此问题。它也可以使用iOS模拟器进行复制。 你有什么建议来解决它?
THX
答案 0 :(得分:0)
不是一个令人满意的答案,但这是我如何在这个问题上取得进展:
我几天都无法解决这个问题。然后我删除了所有代码并从头开始重新编写了功能,然后就解决了。我无法理解确切的原因,因为我在第二次尝试时没有写任何奇特的东西,所以不幸的是我无法分辨它是如何解决的:(
以下是我刚刚做的事情:
创建一次Web视图,并将其缓存:
+(UIWebView *)getTheWebView {
if (theWebView) return theWebView;
theWebView = [[UIWebView alloc] init];
theWebView.scalesPageToFit = YES;
theWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
return theWebView;
}
然后,当我想要显示网络视图时:
UIWebView *theWebView = [HTML5Manager getTheWebView];
theWebView.frame = self.view.frame;
[self.view addSubview:theWebView];
以下是我加载网址的方式:
[theWebView loadRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0]];
这就是它,它的确有效。我知道这没有意义,但我希望它也能帮到你......