zoukankan      html  css  js  c++  java
  • 文档相关

    1、调用相机、相册、图库

      1 #import "ViewController.h"
      2 #import <MobileCoreServices/MobileCoreServices.h>
      3 #import <AVFoundation/AVFoundation.h>
      4 #import <MediaPlayer/MediaPlayer.h>
      5 
      6 
      7 @interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
      8 {
      9     BOOL canmerIsOK;
     10     BOOL photoLibaryIsOk;
     11     BOOL photosAlbumIsOk;
     12     UIImagePickerController *_imagePickerController;
     13 }
     14 
     15 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
     16 
     17 @end
     18 
     19 @implementation ViewController
     20 - (IBAction)showImagePickerView:(id)sender {
     21     //NSLog(@"相册");
     22     _imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
     23     
     24     [self presentViewController:_imagePickerController animated:YES completion:nil];
     25     
     26 }
     27 - (IBAction)useCamera:(id)sender {
     28     _imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
     29     //录制视频时长,默认10s
     30     _imagePickerController.videoMaximumDuration = 15;
     31     
     32     //相机类型(拍照、录像...)字符串需要做相应的类型转换
     33     _imagePickerController.mediaTypes = @[(NSString *)kUTTypeMovie,(NSString *)kUTTypeImage];
     34     
     35     //视频上传质量
     36     //UIImagePickerControllerQualityTypeHigh高清
     37     //UIImagePickerControllerQualityTypeMedium中等质量
     38     //UIImagePickerControllerQualityTypeLow低质量
     39     //UIImagePickerControllerQualityType640x480
     40     _imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
     41     
     42     //设置摄像头模式(拍照,录制视频)为录像模式
     43     _imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
     44     [self presentViewController:_imagePickerController animated:YES completion:nil];
     45 
     46     
     47 }
     48 
     49 - (void)viewDidLoad {
     50     [super viewDidLoad];
     51     
     52     _imagePickerController = [[UIImagePickerController alloc] init];
     53     _imagePickerController.delegate = self;
     54     _imagePickerController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
     55     _imagePickerController.allowsEditing = YES;
     56     
     57     
     58     
     59     
     60     // Do any additional setup after loading the view, typically from a nib.
     61 }
     62 
     63 #pragma mark UIImagePickerControllerDelegate
     64 //该代理方法仅适用于只选取图片时
     65 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo {
     66     NSLog(@"选择完毕----image:%@-----info:%@",image,editingInfo);
     67 }
     68 
     69 
     70 //适用获取所有媒体资源,只需判断资源类型
     71 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
     72     NSString *mediaType=[info objectForKey:UIImagePickerControllerMediaType];
     73     //判断资源类型
     74     if ([mediaType isEqualToString:(NSString *)kUTTypeImage]){
     75         //如果是图片
     76         self.imageView.image = info[UIImagePickerControllerEditedImage];
     77         //压缩图片
     78         NSData *fileData = UIImageJPEGRepresentation(self.imageView.image, 1.0);
     79         //保存图片至相册
     80         UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
     81         //上传图片
     82 //        [self uploadImageWithData:fileData];
     83         
     84     }else{
     85         //如果是视频
     86         NSURL *url = info[UIImagePickerControllerMediaURL];
     87         //播放视频
     88 //        _moviePlayer.contentURL = url;
     89 //        [_moviePlayer play];
     90         //保存视频至相册(异步线程)
     91         NSString *urlStr = [url path];
     92         
     93         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     94             if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(urlStr)) {
     95                 
     96                 UISaveVideoAtPathToSavedPhotosAlbum(urlStr, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
     97             }
     98         });
     99         NSData *videoData = [NSData dataWithContentsOfURL:url];
    100         //视频上传
    101 //        [self uploadVideoWithData:videoData];
    102     }
    103     [self dismissViewControllerAnimated:YES completion:nil];
    104 }
    105 
    106 
    107 #pragma mark 图片保存完毕的回调
    108 - (void) image: (UIImage *) image didFinishSavingWithError:(NSError *) error contextInfo: (void *)contextInf{
    109     
    110 }
    111 
    112 #pragma mark 视频保存完毕的回调
    113 - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInf{
    114     if (error) {
    115         NSLog(@"保存视频过程中发生错误,错误信息:%@",error.localizedDescription);
    116     }else{
    117         NSLog(@"视频保存成功.");
    118     }
    119 }

    2、调用iBook

    需求调试条件:(iOS4.0 later)

    1 1NSString *fileToOpen = [[NSBundle mainBundle] pathForResource:@"readme" ofType:@"pdf"];
    2 NSURL *url = [NSURL fileURLWithPath:fileToOpen];
    3  docController = [[UIDocumentInteractionController interactionControllerWithURL:url] retain];
    4 BOOL isValid = [docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

    3、打开word、execl、pdf等文档

     1 方法一:
     2 用UIWebView就可以了
     3 -(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView
     4 {
     5     NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];
     6     NSURL *url = [NSURL fileURLWithPath:path];
     7     NSURLRequest *request = [NSURLRequest requestWithURL:url];
     8     [webView loadRequest:request];
     9 }
    10 
    11 // Calling -loadDocument:inView:
    12 [self loadDocument:@"test.doc" inView:self.myWebview];
    13 
    14 
    15 方法我也已经测试过了,希望对大家有帮助,
    16 
    17 
    18 方法二:
    19 下面方法是直接通过QLPreviewController打开文档
    20 
    21 qlViewController = [[QLPreviewController alloc] init];
    22    qlViewController.dataSource = self;  
    23    [self presentModalViewController:qlViewController animated:YES];
    24 
    25 
    26 - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {
    27 return 1;
    28 }
    29 - (id <QLPreviewItem>)previewController:(QLPreviewController *)controller 
    30       previewItemAtIndex:(NSInteger)index{
    31 //-------------读文件
    32 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    33 NSString *documentsDirectory = [paths objectAtIndex:0];
    34 if (!documentsDirectory) {
    35   NSLog(@"Documents directory not found!");//return ;
    36 } 
    37 NSString *fileName=[NSString stringWithFormat:@"%@.%@",nameQ,extQ];
    38 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; 
    39 //-------------
    40 NSURL *myQLDocument = [NSURL fileURLWithPath:appFile];
    41 return myQLDocument;
    42 }
  • 相关阅读:
    设计模式(三)原型模式
    PageHelper在Mybatis中的使用
    设计模式(二) 单例模式
    设计模式(一)简单工厂、工厂方法和抽象工厂
    Java网络编程
    循环控制语句if 、for、case、while
    处理海量数据的grep、cut、awk、sed 命令
    shell脚本的输入以及脚本拥有特效地输出
    shell的变量以及常见符号
    shell的使用技巧
  • 原文地址:https://www.cnblogs.com/tig666666/p/5539819.html
Copyright © 2011-2022 走看看