美文网首页
UIWebView加载本地html、pdf和xlsx文件

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

作者: 浅_若清风 | 来源:发表于2021-07-28 21:46 被阅读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等文件类型。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/roktvltx.html