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等文件类型。