关于webview 加载本地图片资源 显示不出来的解决办法
2012-10-09 16:01
1041 查看
由于项目需要 需要加载本地和网络的图片
由于数据是动态的 所以我需要把得到的html网页 拆揭 换上动态数据
可是遇到一个奇怪的问题 加载出来的东西 本地的图片 不能加载上。。。。 其余的文字 什么的 都没有问题
网上找了个例子
NSString *path = [[NSBundle
mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString *htmlString = [NSString
stringWithContentsOfFile:[[NSBundle
mainBundle]pathForResource:@"index_pic1"
ofType:@"html"]
encoding:NSUTF8StringEncoding
error:nil];
[self.moblieWebView
loadHTMLString:htmlString baseURL:baseURL];
把我自己获得的html 填充进去 没有任何问题
很奇怪 问题在哪呢?
self.finalStr
= [NSMutableString string];
//初始化拼装字符串
self.moblieWebView = [[[UIWebView
alloc]initWithFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
self.view.frame.size.height -
kTabBarHeight) ]
autorelease];
self.moblieWebView.autoresizingMask =
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.moblieWebView.dataDetectorTypes =
UIDataDetectorTypeNone; //去掉数字下划线
NSString *resourcePath = [ [NSBundle
mainBundle] resourcePath];
NSURL *baseURL = [NSURL
fileURLWithPath:resourcePath];
NSString *HeadPath = [resourcePath stringByAppendingPathComponent:@"Head.html"];
NSString *startString=[[[NSString
alloc] initWithContentsOfFile:HeadPath
encoding:NSUTF8StringEncoding
error:nil]
autorelease];
//html head
[self.finalStr
appendString:startString];
//加载动态html数据
[self.finalStr
appendString:@"<body>\n"];
[self.finalStr
appendString:@"<div id=\"caption\">\n"];
//加载标题
[self.finalStr
appendString:@"<div id=\"title\">\n"];
[self.finalStr
appendString:@"<h1>"];
[self.finalStr
appendFormat:@"标题"];
//标题
[self.finalStr
appendString:@"</h1>\n"];
[self.finalStr
appendString:@"</div>\n"];
//加载日期
[self.finalStr
appendString:@"<div id=\"date\">\n"];
[self.finalStr
appendString:@"<h2>"];
[self.finalStr
appendFormat:@"2012-10-09"];
//日期
[self.finalStr
appendString:@"</h2>\n"];
[self.finalStr
appendString:@" </div>\n"];
[self.finalStr
appendString:@"<div id=\"text\">\n"];
//显示的图片
[self.finalStr
appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\"><div id=\"pic\"><img
class=\"img-wrapper\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\"></div>\n"];
//显示的图片上的加号
[self.finalStr
appendFormat:@"<div id=\"pic\"><img class=\"plus\" src=\"NewsPicPlus@2x.png\" style=\"position:absolute; \"/></div></a> "];
//点击放大后
图片上的叉号
[self.finalStr
appendString:@"<div id=\"light\" class=\"white_content\">"];
[self.finalStr
appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\"><img id=\"button\"
class=\"funtion_button\" src=\"Shutdown@2x.png\" style=\"display:block;\"/><img id=\"EnlargePhoto\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\" onload=\"javascript:DrawImage(this)\"/ ></a></div>"];
[self.finalStr
appendString:@"<div id=\"fade\" class=\"black_overlay\"></div>"];
//简介
[self.finalStr
appendFormat:@"<p>简介
简介
简介</p>"];
//内容
[self.finalStr
appendFormat:@"<p>这里是内容</p>"];
//时间
[self.finalStr
appendFormat:@"<p>这里是时间</p>"];
//作者
[self.finalStr
appendFormat:@"<p>这里是作者</p>"];
//html end
[self.finalStr
appendFormat:@"</div>\n</div>\n</body>\n</html>\n"];
[self.moblieWebView
loadHTMLString:self.finalStr
baseURL:nil];
self.moblieWebView.scalesPageToFit =
YES;
[self.view
addSubview:self.moblieWebView];
最后才发现 即使你是 自己拼装的字符串 这个 baseURL 也需要制定一下 如果不制定 本地图片就不能加载~
换成
[self.moblieWebView
loadHTMLString:self.finalStr
baseURL:baseURL];
完美解决!
至今没搞懂 苹果底层 是怎么处理的 即使是自己拼装的字符串 也不能让 baseUrl 这个属性为空~
也欢迎有大侠帮小菜解答一下
由于数据是动态的 所以我需要把得到的html网页 拆揭 换上动态数据
可是遇到一个奇怪的问题 加载出来的东西 本地的图片 不能加载上。。。。 其余的文字 什么的 都没有问题
网上找了个例子
NSString *path = [[NSBundle
mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString *htmlString = [NSString
stringWithContentsOfFile:[[NSBundle
mainBundle]pathForResource:@"index_pic1"
ofType:@"html"]
encoding:NSUTF8StringEncoding
error:nil];
[self.moblieWebView
loadHTMLString:htmlString baseURL:baseURL];
把我自己获得的html 填充进去 没有任何问题
很奇怪 问题在哪呢?
self.finalStr
= [NSMutableString string];
//初始化拼装字符串
self.moblieWebView = [[[UIWebView
alloc]initWithFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
self.view.frame.size.height -
kTabBarHeight) ]
autorelease];
self.moblieWebView.autoresizingMask =
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.moblieWebView.dataDetectorTypes =
UIDataDetectorTypeNone; //去掉数字下划线
NSString *resourcePath = [ [NSBundle
mainBundle] resourcePath];
NSURL *baseURL = [NSURL
fileURLWithPath:resourcePath];
NSString *HeadPath = [resourcePath stringByAppendingPathComponent:@"Head.html"];
NSString *startString=[[[NSString
alloc] initWithContentsOfFile:HeadPath
encoding:NSUTF8StringEncoding
error:nil]
autorelease];
//html head
[self.finalStr
appendString:startString];
//加载动态html数据
[self.finalStr
appendString:@"<body>\n"];
[self.finalStr
appendString:@"<div id=\"caption\">\n"];
//加载标题
[self.finalStr
appendString:@"<div id=\"title\">\n"];
[self.finalStr
appendString:@"<h1>"];
[self.finalStr
appendFormat:@"标题"];
//标题
[self.finalStr
appendString:@"</h1>\n"];
[self.finalStr
appendString:@"</div>\n"];
//加载日期
[self.finalStr
appendString:@"<div id=\"date\">\n"];
[self.finalStr
appendString:@"<h2>"];
[self.finalStr
appendFormat:@"2012-10-09"];
//日期
[self.finalStr
appendString:@"</h2>\n"];
[self.finalStr
appendString:@" </div>\n"];
[self.finalStr
appendString:@"<div id=\"text\">\n"];
//显示的图片
[self.finalStr
appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\"><div id=\"pic\"><img
class=\"img-wrapper\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\"></div>\n"];
//显示的图片上的加号
[self.finalStr
appendFormat:@"<div id=\"pic\"><img class=\"plus\" src=\"NewsPicPlus@2x.png\" style=\"position:absolute; \"/></div></a> "];
//点击放大后
图片上的叉号
[self.finalStr
appendString:@"<div id=\"light\" class=\"white_content\">"];
[self.finalStr
appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\"><img id=\"button\"
class=\"funtion_button\" src=\"Shutdown@2x.png\" style=\"display:block;\"/><img id=\"EnlargePhoto\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\" onload=\"javascript:DrawImage(this)\"/ ></a></div>"];
[self.finalStr
appendString:@"<div id=\"fade\" class=\"black_overlay\"></div>"];
//简介
[self.finalStr
appendFormat:@"<p>简介
简介
简介</p>"];
//内容
[self.finalStr
appendFormat:@"<p>这里是内容</p>"];
//时间
[self.finalStr
appendFormat:@"<p>这里是时间</p>"];
//作者
[self.finalStr
appendFormat:@"<p>这里是作者</p>"];
//html end
[self.finalStr
appendFormat:@"</div>\n</div>\n</body>\n</html>\n"];
[self.moblieWebView
loadHTMLString:self.finalStr
baseURL:nil];
self.moblieWebView.scalesPageToFit =
YES;
[self.view
addSubview:self.moblieWebView];
最后才发现 即使你是 自己拼装的字符串 这个 baseURL 也需要制定一下 如果不制定 本地图片就不能加载~
换成
[self.moblieWebView
loadHTMLString:self.finalStr
baseURL:baseURL];
完美解决!
至今没搞懂 苹果底层 是怎么处理的 即使是自己拼装的字符串 也不能让 baseUrl 这个属性为空~
也欢迎有大侠帮小菜解答一下
相关文章推荐
- 关于webview 加载本地图片资源 显示不出来的解决办法
- **WebView加载网页不显示图片解决办法**
- WebView加载网页不显示图片解决办法
- Android WebView加载网页不显示图片解决办法
- WebView加载网页不显示图片解决办法
- 关于Picasso加载本地图片不显示的解决办法
- WebView加载网页不显示图片解决办法
- WebView加载网页不显示图片解决办法
- WebView载入本地html(含css资源)显示不全解决办法
- WebView加载网页不显示图片解决办法
- WebView加载网页不显示图片解决办法
- Android WebView不加载图片资源的解决办法
- 【WebView加载本地资源图片 字体等】一些不常用的用法集合
- Android:WebView加载url网页显示不完整解决办法
- WebView加载完网页之后利用js进行网页刷新,解决webview显示图片适应所有的机型
- iOS开发 关于tableView加载图片时出现卡顿时的解决办法
- 安卓 WebView加载本地图片时居中显示
- Android:WebView加载url网页显示不完整解决办法
- 关于Android加载HTML页面中的图片显示问题的解决办法
- ios的webView加载本地html图片路径显示及webview适配