是否可以使用UIActivityViewController将Instagram动作添加到活动表?

时间:2015-11-07 17:36:12

标签: ios cocoa-touch instagram uiactivityviewcontroller

我正在创建一个iOS应用程序,使用户能够将图像发布到三个(或所有三个)社交媒体提供商之一,包括:Twitter,Facebook和Instagram。

我尝试使用UIDocumentInteractionController()实现此功能,虽然这有效地添加了'Copy to Instagram'图标选项,但它不允许我为Facebook和Twitter共享添加图标/选项。

花了一个小时左右谷歌搜索我的问题的解决方案后,我遇到了看起来很有希望的UIActivityViewController。我已经实现了一个活动表,允许我通过Facebook和Twitter分享,这很棒,但是,是否有人知道我如何将'copy in instagram'选项整合到表格中?

    @IBAction func shareInstagramPressed(sender: AnyObject) {
        if(newImageData.length != 0){
            let image = UIImage(data:newImageData, scale:1.0)
            displayShareSheet(image!)
        }
        else {
            print("Please select an image first")
        }
    }

    func displayShareSheet(shareContent:UIImage) {
        let activityViewController = UIActivityViewController(activityItems: [shareContent as UIImage], applicationActivities: nil)
        activityViewController.excludedActivityTypes = [
            UIActivityTypePostToWeibo,
            UIActivityTypePrint,
            UIActivityTypeAssignToContact,
            UIActivityTypeAddToReadingList,
            UIActivityTypePostToVimeo,
            UIActivityTypePostToTencentWeibo,
            UIActivityTypeOpenInIBooks,
            UIActivityTypeMessage,
            UIActivityTypeMail
        ]
        presentViewController(activityViewController, animated: true, completion: {})
    }

1 个答案:

答案 0 :(得分:0)

是:

... 技术上可能,但 这个支持可能来自Instagram。

来自Apple Documentation

  

只有在想要向用户提供自定义服务时,才应将UIActivity子类化。系统已经为许多标准服务提供支持,并通过UIActivityViewController对象提供它们。例如,标准活动视图控制器支持通过电子邮件发送数据,将项目发布到用户的某个社交媒体帐户以及其他几个选项。您不必为任何内置类型提供自定义服务。

否:

Instagram目前不支持UIActivity

来自Instagram Documentation

NSURL *instagramURL = [NSURL URLWithString:@"instagram://location?id=1"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    [[UIApplication sharedApplication] openURL:instagramURL];
}