- 1.1 原理
- 1.2 源码
- 1.3 核心代码
- 2.1 iOS12之前使用UIWebView
- 2.2 iOS12之后采用WKWebView
- 3.1 html转换为富文本
- 3.2 富文本转换为html
前言
- iOS加载本地HTML、pdf、doc、excel文件,都可采用WebView进行实现即可
- HTML字符串与富文本互转
应用场景:使用原生视图UILabel显示服务端返回的带有HTML标签的内容
原文:
https://blog.csdn.net/z929118967/article/details/90579369
I、加载本地HTML文件
当你在手机打开html文件的时候,是不是用以下这个方法
将它作为邮件的附件,在手机端选择其他应用打开,将html文件存储到文件的iCloud/本机 再根据文件名称打开即可
如果你有需求在手机端打开本地html的需求,又觉得使用其他方法麻烦或者不管用的时候,推荐你可以自己写个简单的app进行打开。
1.1 原理
使用[_webView loadHTMLString:html baseURL:baseURL];
进行代码加载
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self setupWebViewController: [[NSBundle mainBundle] pathForResource:KNUserGuideURL ofType:@"html"] ];
// [self setupAXWebViewController: [[NSBundle mainBundle] pathForResource:KNUserGuideURL ofType:@"html"] ];
}
- (void)setupWebViewController:(NSString*)path{
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[_webview loadHTMLString:html baseURL:baseURL];// 进行代码加载
}
1.2 源码
- demo源码下载
1、从CSDN下载源码地址:https://download.csdn.net/download/u011018979/154489282
1.3 核心代码
- 通过文件名获取path
[wself setupAXWebViewController: [[NSBundle mainBundle] pathForResource:KNUserGuideURL ofType:@"html"] ];// 通过文件名获取path
- 根据path进行代码的加载
- (void)setupAXWebViewController:(NSString*)path{
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
AXWebViewController *webVC = [[AXWebViewController alloc] initWithHTMLString:html baseURL:baseURL];
webVC.showsToolBar = NO;
webVC.navigationController.navigationBar.translucent = NO;
webVC.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.100f green:0.100f blue:0.100f alpha:0.800f];
webVC.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.996f green:0.867f blue:0.522f alpha:1.00f];
UINavigationController *tmp = [[UINavigationController alloc]initWithRootViewController:webVC];
[self presentViewController:tmp animated:YES completion:^{
} ];
}