UIDocumentInteractionController注释属性用法

时间:2014-12-18 19:58:45

标签: ios objective-c iphone uikit sharing

我正在使用UIDocumentInteractionController与其他应用分享我的应用中拍摄的图像。 当您使用它与Instagram共享时,您可以使用包含键@"InstagramCaption"的字典设置注释属性,该字典将预先填充注释。

我想知道是否可以与其他应用程序一起执行此操作,如果是,那么字典的键是什么。

我主要对使用消息应用程序和邮件应用程序(标题和正文)执行此操作,但如果您知道允许文档交互的其他应用程序的密钥,它也会很棒(Facebook,Twitter,WhatsApp, Path,Tumblr,...)。

以下是我的工作:

- (void)openImageInOtherApp:(UIImage *)image
{
    NSError *error = nil;
    NSURL *tempDirectoryURL = [NSURL fileURLWithPath:NSTemporaryDirectory()];
    NSURL *imageURL = [tempDirectoryURL URLByAppendingPathComponent:@"image.jpeg" isDirectory:NO];
    NSData *imageData = UIImageJPEGRepresentation(image, 0.8);
    BOOL saveSucceeded = [imageData writeToURL:imageURL options:NSDataWritingAtomic error:&error];

    if (!saveSucceeded || error) {
        NSLog(@"Error : Saving image %@ at URL %@ failed with error : %@", image, imageURL, error);
        return;
    }

    UIDocumentInteractionController *interactionController = [[UIDocumentInteractionController alloc] init];
    interactionController.delegate = self;
    interactionController.URL = imageURL;
    NSString *comment = @"A test comment"; // A comment that will be sent along with the image
    if (comment != nil && comment.length > 0) {
        interactionController.annotation = @{@"someKey": comment};
    }
    self.interactionController = interactionController;

    BOOL canOpenDocument = [interactionController presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];
    NSLog(@"canOpenDocument : %@", canOpenDocument ? @"YES" : @"NO");
}

然后系统视图出现在我可以选择可以打开文件的应用程序中。

2 个答案:

答案 0 :(得分:1)

阅读 API开发者文档(Facebook,Twitter,WhatsApp,Path,Tumblr,...)

实施例

  1. API developer facebook

    // Put together the dialog parameters

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"Sharing Tutorial", @"name",
                                   @"Build great social apps and get more installs.", @"caption",
                                   @"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",
                                   @"https://developers.facebook.com/docs/ios/share/", @"link",
                                   @"http://i.imgur.com/g3Qc1HN.png", @"picture",
                                   nil];
    
  2. API developer twitter

  3. API developer tumblr
  4. 这可能对您有所帮助:)。

答案 1 :(得分:0)

UIDocumentInteractionController不会神奇地支持所有这些平台。其中一些使用API​​,它将为您提供更多选择。

请查看this documentation为“应用”应用创建彩信。

使用this documentation发送带有图片附件的电子邮件。