html加载电脑本地图片不显示不出来,UIWebView加载本地html文件,不显示资源图片,不加载css样式...

项目中需要加载本地的html,在添加到工程中时,发现不显示本地的资源图片文件,而且样式也跟浏览器打开的不一样。初步判断是资源路径读取的问题。

鉴于iOS沙盒机制的问题,这些资源文件在编译过程中,都被保存到同一资源路径下了。所以就需要我们修改html中图片资源的读取位置。

如本地html中有如下代码

图片不显示

src="images/icbcImg2.png" />

就需要修改为:

src="icbcImg2.png" //沙盒中都在同级别目录

样式不加载

href = "css/reset.css"

href="css/style.css"

修改为:

href = "reset.css"

href="style.css"

1.拖动文件到Xcode,提示两个选择,“create groups”和“create folder references”,默认情况下为第一种,即所有加入到项目的文件都会在mainBundle根路径下,即不管加入项目的文件的目录结构如何,在APP中都可以通过mainBundlePath/filename来访问到;如果采用第二种方式,则就会保留相对路径,需要通过mainBundlePath/path/filename来访问。通过这两种方式到项目的文件夹显示具有不同的颜色。 选择“create groups”,文件夹颜色为黄色。

html里有一个路径的问题(  link href= ""),在Xcode中, Xcode不能找到像url("../images/photo.png")这种路径,所以应该在Xcode中调整下html文件访问本页面图片和css样式文件的路径。

示例代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];

NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

NSString *basePath = [[NSBundle mainBundle] bundlePath];

NSURL *baseURL = [NSURL fileURLWithPath:basePath];

[self.webView loadHTMLString:htmlString baseURL:baseURL];

要注意的就是,因为baseURL的:baseURL

操作以经把项目根目录统一在项目下。加载index.html中的image, css的话。就不再需要路径(直接填写图片名,   css文件名)。这样的html 就可以正常显示html的完整内容了。

2.选择“create folder references”。蓝色的文件夹。文件夹名字为urlName,里面包含一个名为index的html文件。

代码如下:

NSURL * url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"urlName"]];

NSURLRequest * request = [NSURLRequest requestWithURL:url];

[self.webView loadRequest:request];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值