ios - UIActivityViewController 仅适用于 Facebook、Twitter 和 Instagram

标签 ios swift uiactivityviewcontroller

我正在尝试获取一个 UIActivityViewController 来仅显示 Facebook、Twitter 和 Instagram 的选项。到目前为止我已经做了:

    let shareText = "Hello, world!"

    let image = UIImage(named: "TheImage")
    let activityViewController = UIActivityViewController(activityItems: [shareText,image], applicationActivities: nil)
    activityViewController.excludedActivityTypes = [UIActivityType.addToReadingList,
                                                    UIActivityType.airDrop,
                                                    UIActivityType.assignToContact,
                                                    UIActivityType.copyToPasteboard,
                                                    UIActivityType.mail,
                                                    UIActivityType.message,
                                                    UIActivityType.openInIBooks,
                                                    UIActivityType.print,
                                                    UIActivityType.saveToCameraRoll
                                                    ]
    present(activityViewController, animated: true, completion: {})

但是 UIActivityViewController 仍然给了我不需要的选项。

我也想过使用 NSExtensionItem 获取并接近,但我不确定。

谢谢

最佳答案

有适用于 Facebook 和 Twitter 的选项,您只需添加 exceptedActivityTypes。你错过了。

Instagram 选项在事件类型中仍然不可用

let image = UIImage(named: "TheImage")
let activityViewController = UIActivityViewController(activityItems: [shareText,image], applicationActivities: nil)

activityViewController.excludedActivityTypes = [.addToReadingList,
                                               .airDrop,
                                               .assignToContact,
                                               .copyToPasteboard,
                                               .mail,
                                               .message,
                                               .openInIBooks,
                                               .print,
                                               .saveToCameraRoll,
                                               .postToWeibo,
                                               .copyToPasteboard,
                                               .saveToCameraRoll,
                                               .postToFlickr,
                                               .postToVimeo,
                                               .postToTencentWeibo,
                                               .markupAsPDF
]    

present(activityViewController, animated: true, completion: {})

希望这对您有帮助。

以下是可用的事件类型列表。

extension UIActivityType {


    @available(iOS 6.0, *)
    public static let postToFacebook: UIActivityType

    @available(iOS 6.0, *)
    public static let postToTwitter: UIActivityType

    @available(iOS 6.0, *)
    public static let postToWeibo: UIActivityType // SinaWeibo

    @available(iOS 6.0, *)
    public static let message: UIActivityType

    @available(iOS 6.0, *)
    public static let mail: UIActivityType

    @available(iOS 6.0, *)
    public static let print: UIActivityType

    @available(iOS 6.0, *)
    public static let copyToPasteboard: UIActivityType

    @available(iOS 6.0, *)
    public static let assignToContact: UIActivityType

    @available(iOS 6.0, *)
    public static let saveToCameraRoll: UIActivityType

    @available(iOS 7.0, *)
    public static let addToReadingList: UIActivityType

    @available(iOS 7.0, *)
    public static let postToFlickr: UIActivityType

    @available(iOS 7.0, *)
    public static let postToVimeo: UIActivityType

    @available(iOS 7.0, *)
    public static let postToTencentWeibo: UIActivityType

    @available(iOS 7.0, *)
    public static let airDrop: UIActivityType

    @available(iOS 9.0, *)
    public static let openInIBooks: UIActivityType

    @available(iOS 11.0, *)
    public static let markupAsPDF: UIActivityType
}

关于ios - UIActivityViewController 仅适用于 Facebook、Twitter 和 Instagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382561/

相关文章:

ios - 当应用程序发送到后台模式时如何继续接收数据?

swift - 单击带动画的按钮关闭表格 View (快速)

ios - 如何将 "Open in.."函数添加到自定义 UIWebview?

ios - AVAssetWriter 输入问题 : MPEG4

ios - WKWebView 在打开相机 Swift 时关闭

ios - 如何将可选项解包到变量中,然后在 while 循环的下一次迭代中使用该变量?

java - 在 Java 中解码 Base64 百分比编码的图像字符串

swift - 有没有一种组合方法可以阻止多个请求被触发?

ios - 从使用 iOS 6 SDK 构建的应用程序中排除 AirDrop 和添加到阅读列表

ios - 如何从 UIActivityItemSource 函数返回多个值