首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS 8应用扩展从safari获取图像

iOS 8应用扩展从safari获取图像
EN

Stack Overflow用户
提问于 2015-03-13 01:14:56
回答 1查看 1.2K关注 0票数 2

我在我的应用程序上使用应用扩展共享,

返回共享的url和"message“很好,但是我的图像在记录时显示为0。

代码语言:javascript
运行
复制
@interface ShareViewController ()
@property (nonatomic, strong)__block NSString *urlString;
@property (nonatomic, strong)__block UIImage *photo;
@property (nonatomic, strong)NSString *msg;
@end

@implementation ShareViewController

- (BOOL)isContentValid {
    // Do validation of contentText and/or NSExtensionContext attachments here
    return YES;
}

- (void)viewDidLoad{

    [super viewDidLoad];

    //Get msg
    NSExtensionContext *myExtensionContext = [self extensionContext];
    NSArray *inputItems = [myExtensionContext inputItems];
    for(NSExtensionItem* item in inputItems){
        self.msg = [NSString stringWithFormat:@"%@", [item.attributedContentText string]];
    }

    // get url
    NSExtensionItem *item = self.extensionContext.inputItems.firstObject;
    NSItemProvider *itemProvider = item.attachments.firstObject;

    if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeURL]) {
        [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeURL options:nil completionHandler:^(NSURL *url, NSError *error) {
            self.urlString = [NSString stringWithFormat:@"%@",url.absoluteString];
        }];
    }


    //img
    if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) {
        [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(UIImage *image, NSError *error) {
            self.photo = image;
        }];
    }

}

- (void)didSelectPost {
    // This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.

    NSLog(@"big fat fella");
    NSLog(@"msg: %@", self.msg);
    NSLog(@"url %@:", self.urlString);
    NSLog(@"im %@:", self.photo);

    // Inform the host that we're done, so it un-blocks its UI. Note: Alternatively you could call super's -didSelectPost, which will similarly complete the extension context.
    [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
}

所以请注意我在didSelectPost上获取url和消息,但是图像显示为null,

如何获取图像?太棒了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-05 06:37:05

若要在Safari上共享时在共享扩展上自动生成映像,请使用loadPreviewImageWithOptions:completionHandler:previewImageHandler.

代码语言:javascript
运行
复制
[itemProvider loadPreviewImageWithOptions:nil completionHandler:^(UIImage *image, NSError *error){

   if(image){
        //do anything here with the image
   }

}

我能够在Safari上共享时检索自动生成的缩略图,但我无法使用以下方法更改图像的大小:

代码语言:javascript
运行
复制
NSString * const NSItemProviderPreferredImageSizeKey;

参考资料:https://developer.apple.com/documentation/foundation/nsitemprovider

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29023219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档