IOS webview在线预览文件图片等
来源:互联网 发布:网络通则 编辑:程序博客网 时间:2024/05/22 06:42
亲测可以打开word文档(doc docx,ppt pptx,pdf等)图片等。
在h头文件中引用和声明文件地址:
#import <QuickLook/QuickLook.h>@property (nonatomic, retain)NSString *fileURLString;
在c文件中声明delegate:
<UIWebViewDelegate,QLPreviewControllerDataSource,QLPreviewControllerDelegate>
UIWebView *openFileWebView;
打开文件方法:
self.fileURLString = @“文件url地址”; openFileWebView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height)]; openFileWebView.delegate = self; [openFileWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.fileURLString]]];
代理方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ return YES;}#pragma mark - Web代理- (void)webViewDidFinishLoad:(UIWebView *)webView{ NSURL *targetURL = [NSURL URLWithString:self.fileURLString]; NSString *docPath = [self documentsDirectoryPath]; NSString *pathToDownloadTo = [NSString stringWithFormat:@"%@/%@", docPath, [targetURL lastPathComponent]]; NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL hasDownLoad= [fileManager fileExistsAtPath:pathToDownloadTo]; if (hasDownLoad) { self.fileURL = [NSURL fileURLWithPath:pathToDownloadTo]; QLPreviewController *qlVC = [[QLPreviewController alloc]init]; qlVC.delegate = self; qlVC.dataSource = self; [self.navigationController pushViewController:qlVC animated:YES]; // } else { NSURL *targetURL = [NSURL URLWithString:self.fileURLString]; NSData *fileData = [[NSData alloc] initWithContentsOfURL:targetURL]; // Get the path to the App's Documents directory NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder [fileData writeToFile:[NSString stringWithFormat:@"%@/%@", documentsDirectory, [targetURL lastPathComponent]] atomically:YES]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; [openFileWebView loadRequest:request]; } NSLog(@"webViewDidFinishLoad");}- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{ NSLog(@"didFailLoadWithError"); }- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { return 1;}- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { return self.fileURL;}- (void)previewControllerWillDismiss:(QLPreviewController *)controller { NSLog(@"previewControllerWillDismiss");}- (void)previewControllerDidDismiss:(QLPreviewController *)controller { NSLog(@"previewControllerDidDismiss");}- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item{ return YES;}- (CGRect)previewController:(QLPreviewController *)controller frameForPreviewItem:(id <QLPreviewItem>)item inSourceView:(UIView * __nullable * __nonnull)view{ return CGRectZero;}- (NSString *)documentsDirectoryPath { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectoryPath = [paths objectAtIndex:0]; return documentsDirectoryPath;}
0 0
- IOS webview在线预览文件图片等
- iOS WebView 加载本地资源(图片,文件等)
- HTML5图片在线预览
- 上传图片在线预览
- 本地图片在线预览
- andoird doc等文件的在线预览二
- ios预览在线pdf
- PDF.js在线预览pdf、图片、txt类型文件
- word在线预览,文件在线预览,SWFTools
- SKP文件在线预览
- office文件在线预览
- Android文件在线预览
- Android文件在线预览
- java文件在线预览
- C#在线预览文件
- 文件在线预览
- Android 在线预览文件
- 在线预览上存图片
- 动态规划:HDU-2955-0-1背包问题:Robberies
- namespace及use的用法
- 【材料计算】第一性原理、密度泛函理论、从头算之间的关系
- Maven 多环境配置文件管理
- SpringBoot 学习记录(九): Email
- IOS webview在线预览文件图片等
- 点击控件以外的区域使页面(activity)关闭,dispatchTouchEvent用法
- linux环境下使用V4L2及Qt设计简易照相机
- 线程implements Runnable和extends Thread有什么区别
- 用opencv使用大恒相机的痛苦经历
- Python与Java的区别小汇二
- PAT1031 查验身份证(15)
- HTTP图解(三)HTTP2.0
- spring-boot整合redis作为缓存(3)——自定义key