由于WebCoreSharedBufferData导致UIWebView崩溃

时间:2014-05-27 09:11:13

标签: ios uiwebview webkit panoramas

我已经花了几十个小时试图解决这个问题 - 也许社区可以帮助我。

我正在使用krpano脚本开发全景应用。它使用六个方形图像将立方体全景嵌入UIWebView中。客户希望他们具有高分辨率。我应该使用2048x2048瓷砖。有了这样的资源,webview加载得很好,一切都很快,很酷。但是当我关闭视图并再次打开它时,应用程序崩溃并出现以下错误:

  

由于未捕获的异常终止应用程序' NSRangeException',原因:' - [WebCoreSharedBufferData getBytes:range:]:range {0,   4000}超过数据长度0'

我尝试了很多事情 - 在[webView reload]上调用-viewWillDisappear,尝试加载空白页面,触发了将document.body.innerHTML设置为空值的javascript,实施者-didReceiveMemoryWarning - 几十件事,但没有任何帮助。

唯一可行的方法是使用分辨率更小的瓷砖:512x512像素。但它们质量很差,所以它没有任何帮助。

这是我目前的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIWebView *webV = [[UIWebView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:webV];
    webV.delegate = self;

    NSString* filePath = [[NSBundle mainBundle] pathForResource:@"krpano"
                                                     ofType:@"html" inDirectory:@"old"];
    NSURL *url = [NSURL fileURLWithPath:filePath];


    [webV loadRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]];
}

我已经清除了之前解决问题的任何尝试。我在iPhone 5和iPhone 4上测试应用程序 - 在两台设备上都崩溃了。模拟器工作正常,没有任何问题。

那么,在这种情况下我该怎么办?我非常高兴能得到任何帮助!

更新:即使使用512x512磁贴,如果应用的大小超过100kb,也会崩溃。每块瓷砖都可以正常使用1-10kb。

0 个答案:

没有答案