iOS加载本地HTML文件

先将文件引入到工程中(引入文件的两种方式介绍),再获取html文件路径,加载html文件。因为引入文件有两种方式,所以加载文件的方式也有两种。加载本地html文件主推第二种方式。如果想了解两种方式的区别请看引入文件的两种方式介绍

下面请看两种加载html文件的方式

方法一:

  • 文件引入方式


    文件加入方式一.png
  • 加载html

// 获取路径
    NSString * path = [[NSBundle mainBundle] pathForResource:@"文件名" ofType:@"html"];
    // 创建URL
    NSURL * url = [NSURL fileURLWithPath:path];
    // 创建NSURLRequest
    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    // 加载
    [webView loadRequest:request];
  • 这种方法是加载通过Creat groups方式添加的文件。这里需要注意的是前端代码里在引入资源时,代码里所有的资源路径(引入图片、js、css、html等等)都不要,直接把前面的路径都删了,只需要文件名就可以了。否则在引入资源时Xcode会找不到,比如在页面里某个地方有图片,但你Xcode本地前端代码里引入图片用的是路径,那么图片就会找不到,在页面上就不会显示图片。
  • 例如,需将路径删除,只需文件名就可以了


    图片路径.png
文件路径.png

这种方式引入文件,如果有相同的文件名,在项目编译的时候是会报文件重复的错误

在这里推荐使用下面这种方法!

方法二:

  • 文件引入


    文件加入方式二.png
  • 加载html(这里需要注意加载的html文件的文件路径)

NSString * path = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"html" inDirectory:@"AppWeb/view"];
    NSURL * url = [NSURL URLWithString:path];
    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

NSString * path = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"html" inDirectory:@"AppWeb/view"];
这个方法里
login:文件名
html:文件名后缀
AppWeb/view:文件路径

122111.png

  • 这种方法是加载通过Creat folder reference方式添加的文件

使用第二种方法就不用去改前端代码里的路径了。但需要注意文件的引入方式!

两种引入文件方式的区别请看Xcode引入文件的两种方式

  • 如果加载的不是HTML文件而是HTML代码,那么可以使用下面这个方法
NSString * str = @"<div class=\"logo\"><img src=\"logo.png\" /> 协同管理</div>";
    [webView loadHTMLString:str baseURL:nil];

str就是你的HTML代码,需要注意的是字符串里双引号的处理(在双引号前面加\)

觉得有用麻烦给❤️,您的❤️就是小编的动力

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。