我正在使用 React Native 共享表。目前,它显示一行符合条件的应用程序可以共享。但是,我希望它一次只显示一个应用程序。也就是说,当我分享到 snapchat 时,让它只显示 snapchat,这样用户就不必在“更多”中查找它。
我知道有一种方法可以排除特定应用 ( https://developer.apple.com/documentation/uikit/uiactivity/activitytype ):
onClick() {
Share.share({
message: 'BAM: we\'re helping your business with awesome React Native apps',
url: 'http://bam.tech',
title: 'Wow, did you see that?'
}, {
// Android only:
dialogTitle: 'Share BAM goodness',
// iOS only:
excludedActivityTypes: [
'com.apple.UIKit.activity.PostToTwitter'
]
})
}
但我不知道我想要排除的所有应用程序的 uiactivitytype 签名(如果您知道,请告诉),而且将所有内容列入黑名单比仅将 snapchat 列入白名单更困难。
有办法做到这一点吗?也许与 includedActivityTypes
一起使用?
最佳答案
这是我的列表:
let vc = UIActivityViewController(activityItems: [shareImage], applicationActivities: [])
vc.excludedActivityTypes = [
//UIActivity.ActivityType.postToTwitter,
//UIActivity.ActivityType.postToFacebook,
UIActivity.ActivityType.postToWeibo,
//UIActivity.ActivityType.message,
//UIActivity.ActivityType.mail,
//UIActivity.ActivityType.print,
//UIActivity.ActivityType.copyToPasteboard,
UIActivity.ActivityType.assignToContact,
//UIActivity.ActivityType.saveToCameraRoll,
UIActivity.ActivityType.addToReadingList,
//UIActivity.ActivityType.PostToFlickr,
UIActivity.ActivityType.postToVimeo,
UIActivity.ActivityType.postToTencentWeibo,
//UIActivity.ActivityType.airDrop,
UIActivity.ActivityType.openInIBooks,
UIActivity.ActivityType.markupAsPDF
]
抱歉,脑子转储了,但在几乎任何版本的 Xcode(以下是 12.3 版本)中,您都可以深入研究,UIActivity.ActivityType
会产生:
extension UIActivity.ActivityType {
@available(iOS 6.0, *)
public static let postToFacebook: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let postToTwitter: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let postToWeibo: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let message: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let mail: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let print: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let copyToPasteboard: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let assignToContact: UIActivity.ActivityType
@available(iOS 6.0, *)
public static let saveToCameraRoll: UIActivity.ActivityType
@available(iOS 7.0, *)
public static let addToReadingList: UIActivity.ActivityType
@available(iOS 7.0, *)
public static let postToFlickr: UIActivity.ActivityType
@available(iOS 7.0, *)
public static let postToVimeo: UIActivity.ActivityType
@available(iOS 7.0, *)
public static let postToTencentWeibo: UIActivity.ActivityType
@available(iOS 7.0, *)
public static let airDrop: UIActivity.ActivityType
@available(iOS 9.0, *)
public static let openInIBooks: UIActivity.ActivityType
@available(iOS 11.0, *)
public static let markupAsPDF: UIActivity.ActivityType
}
我想这就是你想要的。一如既往,寻找 iOS 版本的变化。 (我倾向于检查每个 iOS 版本,但你永远不知道。)此外,请记住,可以使用共享表来完成自定义。
最后,请注意,它是黑名单。就是这样。
编辑:
我能够调出我的列表,因为这就是它在我的应用程序中的编码方式。保留已定义类型的完整列表要容易得多,包括那些未列入黑名单以供将来使用的类型!
关于javascript - 有没有办法共享特定的应用程序 ios?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65525994/