最近項目中要加載一個本地的word/pdf等文件比如《用戶隱私政策》《用戶注冊說明》,有兩種方法加載
1 > 用QLPreviewController控制器實現 步驟 : 1 > 導入庫文件 : QuickLook.framework 2 > 導入頭文件 : <QuickLook/QuickLook.h> 3 > 創建我們的對象,然后設置dataSource 2 > 用webView來加載word文件
以上兩種方法都先把本地word/pdf文件拖入當我們的項目中
有時候會出現path為nil,看看是不是沒加進Build Phases-Copy Bundle Resources資源
/* 方法1使用: 1、導入庫文件:QuickLook.framework 2、導入頭文件:<QuickLook/QuickLook.h> */ #import <QuickLook/QuickLook.h> @interface ViewController ()<QLPreviewControllerDataSource,UIWebViewDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 方法1:用QLPreviewController控件實現 [self QLPreviewControllerLoad]; // 方法2:用WebView的方法加載word [self webViewLoad]; } #pragma mark -- QLPreviewController - (void)QLPreviewControllerLoad { self.view.backgroundColor = [UIColor lightGrayColor]; QLPreviewController *qlpVC = [[QLPreviewController alloc] init]; qlpVC.dataSource = self; [self presentViewController:qlpVC animated:YES completion:nil]; } - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { return 1;//需要顯示文件的個數 } - (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { NSString *path = [[NSBundle mainBundle] pathForResource:@"順道用戶隱私政策.docx" ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; return url; } #pragma mark -- WebView - (void)webViewLoad { NSString *path = [[NSBundle mainBundle] pathForResource:@"順道用戶隱私政策" ofType:@"docx"]; NSURL *url = [NSURL fileURLWithPath:path]; UIWebView *webView = [[UIWebView alloc] init]; webView.frame = CGRectMake(0, 0, kScreen_width, kScreen_height); webView.backgroundColor = [UIColor whiteColor]; [webView loadRequest:[NSURLRequest requestWithURL:url]]; [webView sizeToFit]; webView.scalesPageToFit = YES; webView.delegate = self; [self.view addSubview:webView]; } - (void)webViewDidFinishLoad:(UIWebView *)webView { NSLog(@"webViewDidFinishLoad"); NSString *javascript = [NSString stringWithFormat:@"var script = document.createElement('script');" "script.type = 'text/javascript';" "script.text = \"function ResizeImages() { " "var myimg;" "var maxwidth=%f;" //縮放系數 "for(i=0;i <document.images.length;i++){" "myimg = document.images[i];" "if(myimg.width > maxwidth){" "var scale = myimg.width/myimg.height;" "myimg.width = maxwidth;" "myimg.height = maxwidth/scale;" "}" "}" "}\";" "document.getElementsByTagName('head')[0].appendChild(script);",CGRectGetWidth(webView.frame)]; [webView stringByEvaluatingJavaScriptFromString:javascript]; //添加調用JS執行的語句 [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"]; }