delegate failed to return after waiting 10 seconds:自定义UIWebView缓冲加载数据失败崩溃

   对UIWebView的使用还不太熟悉,刚开始用,loadHTLMstring是没有问题的,正常解析显示HTML字符内容,

但由于项目要求,需要对UIWebView做自定义修改,需求如下


其中的图片以及标题栏并非HTML本身的内容,而是要求自己添加的,

注意一点:自定义的内容要随uiwebview滑动,需要把内容添加到_myWebView.scrollView 如下:

- (void)layoutNavButton{

    //添加备图和分割线

    [_myWebView.scrollView addSubview:standbyImage];

    [_myWebView.scrollView addSubview:line];

}

为了添加的东西不会把HTML内容遮住,需要头部留空白,直接修改要显示的HTML字符,在开头插入

<div style='height:161px'> </div> 标示留空白高度为161    

        

以上达到需求的基本目的了,但问题来了,图片加载方面,刚开始我用了图片缓冲的方法加载图片:EGOImageView带异步加载图片并缓存功能

EGOImageView *mImage = [[EGOImageView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width,110)];

        mImage.placeholderImage = [UIImage imageNamed:@"nopic.png"];

        mImage.imageURL = [NSURL URLWithString:information_group_image];

添加图片后,打开uiwebview,程序崩溃!!!!!!!

报错信息:

void SendDelegateMessage(NSInvocation*): delegate (webView:webViewDidFinishLoad:) failed to return after waiting 10 seconds. main run loop mode...

mImage删除后就不会崩溃,说明就是图片的问题,原因是EGOImageView加载图片是异步加载,有缓冲的效果,可能是(我也不确定是否正确)uiwebview加载HTML的方法

loadHTMLStringbaseURL: 不允许有异步进程。。。。。


修改方法:直接用nsdata下载图片,然后直接扔到uiwebview里面去,其实这是最笨的方法了,但起码解决问题了。。。。代码如下

//此处加到webviewscrollview里面的图片,不能用缓冲机制,会loadfailed导致崩溃

            NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[jsonDict objectForKey:@"information_image"]]];

            UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, PIGHEIGHT)];

            [imageV setImage:[UIImage imageWithData:data]];

            if ([jsonDict toString:@"information_details"] != nil && ![[jsonDict toString:@"information_details"] isEqualToString:@""]){

                tempstr = @"<div style='height:161px'> </div>";

                NSString *HTMLString = [tempstr stringByAppendingString:[jsonDict toString:@"information_details"]];

                [_myWebView loadHTMLString:HTMLString baseURL:nil];

                if (imageV.image !=nil) {

                    [_myWebView.scrollView addSubview:imageV];

                }

                

            }

}

这样就不崩溃了,至于图片能不能下载下来,就看网络情况了。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值