html在ios上不执行js,iOS UIWebView导入本地html无法加载css和js问题

最近一直在做h5相关,发现本地html模板导入进项目后,js和css并显示不出来,后来发现是路径的问题。

导入html文件夹方式

Create groups (创建虚拟结构-包结构)

646a121a9d3c

屏幕快照 2018-06-13 上午10.29.37.png

646a121a9d3c

屏幕快照 2018-06-13 上午10.26.21.png

app编译过后引入的文件会被放在同一个文件夹下面会忽略原本的文件夹,所以在HTML文件中的路径就会出现问题。因此html文件中引入css,js,图片等就不需要添加前缀路径了,直接写文件名就行。

Create folder references for any added folders (创建实体结构)

646a121a9d3c

屏幕快照 2018-06-13 上午10.27.00.png

646a121a9d3c

屏幕快照 2018-06-13 上午10.27.23.png

app编译过后引入的文件会按照原本的目录结构存放,这个时候就需要添加相对路径。因此html文件中引入css,js,图片等就需要添加前缀路径了。

加载本地动态html(代码中组合生成的html字符串)

1.使用绝对路径拼接

//获取文件全路径

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"newImage@2x" ofType:@"png"];

//代码加载图片需要前面拼接file:///

[self.htmlString appendFormat:@"%@%5C%22 \n",imagePath];

//baseURL为nil;

[webview loadHTMLString:mStringhtml baseURL:nil];

2.使用URLForResource

//获取文件URL

NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"new_file.css" withExtension:nil];

/加载文件需要路径

[self.htmlString appendFormat:@"\n",fileUrl];

//lbaseURL为nil;

[webview loadHTMLString:self.htmlString baseURL:nil];

3.使用bundleURL

/加载文件可以只需要文件名

[self.htmlString appendFormat:@"\n "];

//使用[[NSBundle mainBundle] bundleURL];

[webview loadHTMLString:weakSelf.mStringhtml baseURL:[[NSBundle mainBundle] bundleURL]];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值