delegate failed to return after waiting 10 seconds:自定义UIWebView缓冲加载数据失败崩溃
来源:互联网 发布:淘宝开发,用的什么软件 编辑:程序博客网 时间:2024/05/23 11:35
对UIWebView的使用还不太熟悉,刚开始用,loadHTLMstring是没有问题的,正常解析显示HTML字符内容,
但由于项目要求,需要对UIWebView做自定义修改,需求如下
其中的图片以及标题栏并非HTML本身的内容,而是要求自己添加的,
注意一点:自定义的内容要随uiwebview滑动,需要把内容添加到_myWebView.scrollView 如下:
- (void)layoutNavButton{
//添加备图和分割线
[_myWebView.scrollViewaddSubview:standbyImage];
[_myWebView.scrollViewaddSubview:line];
}为了添加的东西不会把HTML内容遮住,需要头部留空白,直接修改要显示的HTML字符,在开头插入
<div style='height:161px'> </div> 标示留空白高度为161
以上达到需求的基本目的了,但问题来了,图片加载方面,刚开始我用了图片缓冲的方法加载图片:EGOImageView带异步加载图片并缓存功能
EGOImageView *mImage = [[EGOImageViewalloc] initWithFrame:CGRectMake(0,0, self.frame.size.width,110)];
mImage.placeholderImage = [UIImageimageNamed:@"nopic.png"];
mImage.imageURL = [NSURLURLWithString: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的方法
loadHTMLString: baseURL: 不允许有异步进程。。。。。
修改方法:直接用nsdata下载图片,然后直接扔到uiwebview里面去,其实这是最笨的方法了,但起码解决问题了。。。。代码如下
//此处加到webview的scrollview里面的图片,不能用缓冲机制,会loadfailed导致崩溃
NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:[jsonDict objectForKey:@"information_image"]]];
UIImageView *imageV = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width,PIGHEIGHT)];
[imageVsetImage:[UIImageimageWithData:data]];
if ([jsonDict toString:@"information_details"] !=nil && ![[jsonDict toString:@"information_details"] isEqualToString:@""]){
tempstr =@"<div style='height:161px'> </div>";
NSString *HTMLString = [tempstrstringByAppendingString:[jsonDict toString:@"information_details"]];
[_myWebViewloadHTMLString:HTMLString baseURL:nil];
if (imageV.image !=nil) {
[_myWebView.scrollViewaddSubview:imageV];
}
}
- delegate failed to return after waiting 10 seconds:自定义UIWebView缓冲加载数据失败崩溃
- UBUNTU : waiting-up-to-60-more-seconds-for-network-configuration
- Nagios CHECK_NRPE: Socket timeout after 10 seconds
- 自定义缓冲加载界面
- How to Ajax auto refresh after x seconds
- FAILED Task attempt_xx_r_000000_0 failed to report status for 600 seconds
- Android自定义view实现加载中、加载失败、无数据
- hadoop错误failed to report status for 600 seconds
- hadoop抛出failed to report status for 600 seconds异常
- ubuntu12.04开机出现waiting up to 60 more seconds for network configuration问题的解决
- Ubuntu开机 网络配置等待很久 Waiting up to 60 more seconds for network configuration
- Ubuntu 11.10 Waiting up to 60 more seconds for network configuration…
- 从Daemons到finalize timed out after 10 seconds
- ionic3 自定义插件安装失败问题解决 Error: Failed to get absolute path to installed module
- Failed to return new code Element
- iOS-UIWebview设置超时、加载失败、重新加载等问题解决
- SQL Server子系统加载失败(The xx subsystem failed to load)错误的处理
- VS2012 加载工程失败PACKAGE “VISUAL C++ PACKAGE” FAILED TO LOAD
- 多边形重心模板
- 页面布局浏览器兼容性
- 【改进】Qt界面显示图片,在图上绘制图形,拖动顶点改变大小
- RFID作业一
- Linux那些事儿 之 戏说USB(22)设备的生命线(五)
- delegate failed to return after waiting 10 seconds:自定义UIWebView缓冲加载数据失败崩溃
- 18.allegro区域约束规则设置
- ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
- 计算几何:非规范相交的模板
- (1.4.5)字符串类
- 编译原理-简单模拟编译器判错
- Unity3d中的特殊文件夹
- Spring MVC PDF视图
- HDOJ 1020 Encoding