【问题标题】:UIActivityViewController Hide my application share ExtensionUIActivityViewController 隐藏我的应用程序共享扩展
【发布时间】:2018-06-25 08:15:32
【问题描述】:

在我的应用程序中,我添加了我的共享扩展程序,它工作正常,但是当我通过 UIActivityViewController 邀请应用程序时,我遇到了一个问题,我显示了我的应用程序扩展程序。如何隐藏我自己的应用程序扩展?

【问题讨论】:

  • 您的问题解决了吗?

标签: ios swift3 uiactivityviewcontroller ios-sharesheet


【解决方案1】:

您可以通过在list of excluded activity types 中添加您的扩展活动类型来做到这一点:

let activityViewController = UIActivityViewController(activityItems: <your items>, applicationActivities: <your supported application activities>)

let extensionActivityType = UIActivityType(<your extension activity type id>)
activityViewController.excludedActivityTypes = [extensionActivityType]

【讨论】:

  • 感谢您的回答,我尝试了以下代码,但没有成功。 activityVC.excludedActivityTypes = [UIActivityType.airDrop,UIActivityType.print, UIActivityType.postToWeibo, UIActivityType.copyToPasteboard, UIActivityType.addToReadingList, UIActivityType.postToVimeo, UIActivityType(rawValue: "com.tops.pushnotification.MiFTyApp"),UIActivityType(rawValue: "com.tops.pushnotification.PeeponsShareExt")]
【解决方案2】:

对不起,迟到了,但希望这个答案能帮到你。

首先在您的代码中定义以下行

class ActionExtensionBlockerItem: NSObject, UIActivityItemSource {
func activityViewController(_ activityViewController: UIActivityViewController, dataTypeIdentifierForActivityType activityType: UIActivityType?) -> String {
    return "com.your.unique.uti";
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivityType) -> Any? {
    // Returning an NSObject here is safest, because otherwise it is possible for the activity item to actually be shared!
    return NSObject()
}
func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivityType?) -> String {
    return ""
}
func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivityType?, suggestedSize size: CGSize) -> UIImage? {
    return nil
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
    return ""
}

}

这里 com.your.unique.uti 是您的应用程序组标识符 然后在展示activityViewController时使用下面的代码

let activityViewController = UIActivityViewController(activityItems: [/* Other Items To Share, */ ActionExtensionBlockerItem()], applicationActivities: nil)

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多