zoukankan      html  css  js  c++  java
  • iOS

    最近项目中要加载一个本地的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();"];
    }


  • 相关阅读:
    Oracle decode函数
    Flink笔记
    httpclient之put 方法(参数为json类型)
    XMLHTTPRequest的理解 及 SpringMvc请求和响应xml数据
    SQL获取本周,上周,本月,上月第一天和最后一天 注:本周从周一到周天
    Other
    Sql根据起止日期生成时间列表
    sql 在not in 子查询有null值情况下经常出现的陷阱
    sql 判断一个表的数据不在另一个表中
    查看系统触发器
  • 原文地址:https://www.cnblogs.com/gongyuhonglou/p/10511682.html
Copyright © 2011-2022 走看看