UIWebView加载本地html、pdf和xlsx文件

2021-07-28  本文已影响0人  浅_若清风

iOS中,有时候为了避免频繁使用网络加载,我们经常会把一些内容以html、pdf、xlsx等文件形式导入到工程中,在iOS中,可以使用UIWebView去加载显示。以下代码为我的工程使用的一个示例,在此记录一下。

完整代码
//添加代理,声明UIWebView实例
@interface ModelQueriesVC ()<UIWebViewDelegate>
@property (nonatomic, strong)UIWebView *contentWeb;
@end
@implementation ModelQueriesVC
//创建web视图
- (UIWebView *)contentWeb
{
    if (_contentWeb == nil)
    {
        _contentWeb = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_W, SCREEN_H)];
        [_contentWeb setDataDetectorTypes:UIDataDetectorTypeAll];
        _contentWeb.scalesPageToFit = YES;
        [_contentWeb setDelegate:self];
        // 去掉webView的滚动条
        for (UIView *subView in [_contentWeb subviews])
        {
            if ([subView isKindOfClass:[UIScrollView class]])
            {
                // 不显示竖直的滚动条
                [(UIScrollView *)subView setShowsVerticalScrollIndicator:NO];
            }
        }
        _contentWeb.backgroundColor = BACKCOLOR;
        [self.view addSubview:_contentWeb];
    }
    return _contentWeb;
}
//加载文件
- (void)loadFile
{
    //FILE为文件名,TYPE为文件类型
    NSURL *filePath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: FILE ofType:TYPE]];
    NSURLRequest *request = [NSURLRequest requestWithURL: filePath];
    [self.contentWeb loadRequest:request];
    //使文档的显示范围适合UIWebView的bounds
    [self.contentWeb setScalesPageToFit:YES];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    //加载文件
    [self loadFile];
}
@end

注:
1.导入的文件名命名不要加后缀,例如显示名称为A.pdf的文件,在导入到工程前需重命名为A。导入到工程后,在目录列表会自动显示成A.pdf,否则可能会报错。
2.TYPE可以是html、pdf或xlsx等文件类型。

上一篇下一篇

猜你喜欢

热点阅读