代码改变世界

Share Extension

2017-11-16 20:15  dengchaojie_learner  阅读(385)  评论(0编辑  收藏  举报

https://my.oschina.net/vimfung/blog/707448

http://blog.csdn.net/chengwuli125/article/details/39521213

NSItemProvider就是附件,可能是图片、视频、网址的NSURL。例如图片:file:///var/mobile/Media/PhotoData/OutgoingTemp/83C2CA24-9774-479B-8507-B062C1D3F459/IMG_0101.JPG

 

遇到的坑:当选择多个图片(附件)时,在viewDidLoad,先保存到NSUserDefaults,

- (void)viewDidLoad

{

    [superviewDidLoad];

    NSMutableArray *inputItems = [NSMutableArrayarray];

    self.itemArray = [NSMutableArrayarray];

    NSUserDefaults *groupUS = [[NSUserDefaultsalloc] initWithSuiteName:kAppGroupId];

    __block NSString *ident = @"";

    

    [self.extensionContext.inputItemsenumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

        NSExtensionItem *exitem = obj;

        [exitem.attachments enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

            NSItemProvider *itemProvider = obj;

            if ([itemProvider hasItemConformingToTypeIdentifier:@"public.png"])

            {

                ident = @"public.png";

                

            }elseif ([itemProvider hasItemConformingToTypeIdentifier:@"public.jpeg"])

            {

                ident = @"public.jpeg";

            }

            [itemProvider loadItemForTypeIdentifier:ident options:nil completionHandler:^(id<NSSecureCoding>  _Nullable item, NSError * _Null_unspecified error) {

                if ([(NSObject *)item isKindOfClass:[NSURL class]]) {

                    NSURL *url = (NSURL *)item;

                    NSData *data = [NSData dataWithContentsOfURL:url];

                    [inputItems addObject:data];

                    [self.itemArray addObject:exitem];

                    [groupUS setObject:inputItems forKey:@"inputItems"];

 

                }

                

            }];

            

        }];

        

    }];

}

 

提审的扩展和容器程序的Build Version要保持一致,否则在上传审核包的时候会提示警告,导致程序无法正常提审。

 

 

 

 

System-Declared Uniform Type Identifiers

https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1