iOS UIWebView导入本地html无法加载css和js问题

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

导入html文件夹方式

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


    iOS UIWebView导入本地html无法加载css和js问题_第1张图片
    屏幕快照 2018-06-13 上午10.29.37.png

    iOS UIWebView导入本地html无法加载css和js问题_第2张图片
    屏幕快照 2018-06-13 上午10.26.21.png

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



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


    iOS UIWebView导入本地html无法加载css和js问题_第3张图片
    屏幕快照 2018-06-13 上午10.27.00.png
iOS UIWebView导入本地html无法加载css和js问题_第4张图片
屏幕快照 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:@" \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]];

你可能感兴趣的:(iOS UIWebView导入本地html无法加载css和js问题)