iOS加载本地HTML、pdf、doc、excel文件 & HTML字符串与富文本互转

2021-07-05 20:53:43 浏览数 (1)

  • 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]; 进行代码加载

代码语言:javascript复制
- (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
代码语言:javascript复制
                                        [wself setupAXWebViewController:  [[NSBundle mainBundle] pathForResource:KNUserGuideURL ofType:@"html"]  ];// 通过文件名获取path

  • 根据path进行代码的加载
代码语言:javascript复制
- (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:^{
        
    } ];
}

II 、iOS打开pdf、doc、excel文件

iOS12之前使用UIWebView

0 人点赞