我已经为我的应用程序创建了一个共享扩展,用户可以通过它创建带有图片的帖子。当从“照片”中选择并分享任何图像时,它能够完美地工作,但是当截屏被直接分享时,共享扩展无法获取它。
我已经编写了用于获取图像的代码。
我已经编写了用于获取图像的代码。
-(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];
}
}];
}
}];
}
}
上述方法在viewDidLoad之后调用。当从“照片”中选择任何图像时,它都可以完美显示,但是当立即共享屏幕截图时,我会收到错误提示“无法将项目强制转换为NSData类”。如有任何帮助,不胜感激。谢谢。