小编Zae*_*tib的帖子

如何在 iOS 共享扩展中获取屏幕截图?

我为我的应用程序创建了一个共享扩展程序,用户可以通过该扩展程序创建带有图像的帖子。当选择并共享“照片”中的任何图像时,它的效果非常好,但是当截取屏幕截图并直接共享时,共享扩展程序无法获取它。

我已经编写了用于获取图像的代码。

-(void)fetchImages {
    for (NSExtensionItem *item in self.extensionContext.inputItems) {

        [item.attachments enumerateObjectsUsingBlock:^(NSItemProvider * _Nonnull itemProvider, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) {
                [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(NSData *image, NSError *error) {
                    // You will get Image data here that you can submit to server.
                    [self showAlertWithMessage:[error localizedDescription]];

                    if(image) {
                        [self saveImage:image atIndex:idx];
                    }
                }];
            }
        }];
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的方法是在viewDidLoad之后调用的。当从“照片”中选择任何图像时,它会显示得很好,但是当在拍摄后立即共享屏幕截图时,我收到错误“无法强制将项目强制为 nsdata 类”。对此的任何帮助我将不胜感激。谢谢。

objective-c ios

5
推荐指数
1
解决办法
856
查看次数

标签 统计

ios ×1

objective-c ×1