html文件资源web,WKWebview加载本地HTML资源文件

前言:

iOS9.0之后苹果提供了一个加载本地HTML文件的方法,即

[webView loadFileURL:fileURL allowingReadAccessToURL:baseUrl]

但是我们现在开发一般需要适配到iOS8.0以上,所以我们也需要知道iOS9.0系统之前的加载方式。本文是把本地的HTML文件放在iOS的沙盒文件Document文件中,这个路径你可以自定义,只要能获取的到就好。

一、获取本地HTML的路径:

本地HTML的文件分布一般是这样的

e45e69ce8c02

file.png

1.获取到本地HTML文件的入口,一般是 index.html

NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:@"html"] stringByAppendingPathComponent:@"index.html"];

2.获取到入口文件的上一级目录

NSString *baseFilePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:@"html"];

3.再把本地路径转化为URL格式,供加载HTML使用

NSURL *fileURL = [NSURL fileURLWithPath:filePath];

NSURL *baseUrl = [NSURL fileURLWithPath:baseFilePath];

二、iOS9.0和以上系统使用的加载方式

[webView loadFileURL:fileURL allowingReadAccessToURL:baseUrl];

三、通用的加载方式(即iOS9.0以上和以前都适用)

NSURL *fileUrl = [self fileURLForBuggyWKWebView8WithFileURL:baseUrl];

[webView loadRequest:[NSURLRequest requestWithURL:fileUrl]];

- (NSURL *)fileURLForBuggyWKWebView8WithFileURL: (NSURL *)fileURL {

NSError *error = nil;

if (!fileURL.fileURL || ![fileURL checkResourceIsReachableAndReturnError:&error]) {

return nil;

}

NSFileManager *fileManager= [NSFileManager defaultManager];

NSURL *temDirURL = [[NSURL fileURLWithPath:NSTemporaryDirectory()] URLByAppendingPathComponent:@"www"];

[fileManager createDirectoryAtURL:temDirURL withIntermediateDirectories:YES attributes:nil error:&error];

NSURL *htmlDestURL = [temDirURL URLByAppendingPathComponent:fileURL.lastPathComponent];

[fileManager removeItemAtURL:htmlDestURL error:&error];

[fileManager copyItemAtURL:fileURL toURL:htmlDestURL error:&error];

NSURL *finalHtmlDestUrl = [htmlDestURL URLByAppendingPathComponent:@"index.html"];

return finalHtmlDestUrl;

}

最后:

学习的同时也要多多总结,这是我的爬坑经验,希望对你有帮助,如有错误,多多指教😊。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值