ios - no se puede excluir UIActivityTypePostToFacebook de
objective-c uikit (2)
Deseo crear un UIActivityViewController
que excluya algunas de las funciones de compartir nativas, como Facebook y Twitter Share. Pero el ShareExtention
compartido de Facebook todavía está disponible como ShareExtention
.
Yo creo lo siguiente:
activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
y excluido Facebook estableciendo los tipos de actividad excluidos.
activityViewController.excludedActivityTypes = @[
UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,
UIActivityTypePrint,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAirDrop,
UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter
];
Cuando se ejecuta en mi iPhone aparece el ícono de Facebook a pesar de estar excluido.
Investigando cómo está sucediendo esto, veo que el controlador de finalización para el controlador de actividad devuelve activityType = com.facebook.Facebook.ShareExtension
, no UIActivityTypePostToFacebook
. Además, al seleccionar el botón más en el controlador de actividad, hay un botón para Facebook y otras aplicaciones que utilizan la convención Compartir.
¿Por qué Facebook está utilizando la función shareExtention
cuando Twitter no lo está y por qué no puedo excluirla con las actividades excluidas?
Nota: He probado esto en varios dispositivos, pero el problema solo existe en un dispositivo que ejecuta 8.1.3.
Gracias
Prueba de esta manera
// sharing items in an array lets say sharingItems
NSArray *sharingItems = @[@"hello", @"how", @"are", @"You."];
//making UIActivityViewController object lets say avc
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
//exclude UIActivityTypePostToFacebook
avc.excludedActivityTypes = @[UIActivityTypePostToFacebook];
//presenting UIActivityViewController in our case avc
[self presentViewController:avc animated:YES completion:nil];
mira la imagen de abajo, Facebook no está incluido
Al comentar avc.excludedActivityTypes = @[UIActivityTypePostToFacebook];
Facebook vuelve a ser visible en la opción de compartir
//Hope this helps . This is how it is done in Swift 3.
// When Including the FB Option the code is as follow:
func otherSharing() {
let activityItem: [AnyObject] = [returnFinalImage() as AnyObject]
let avc = UIActivityViewController(activityItems: activityItem as [AnyObject], applicationActivities: nil)
avc.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.assignToContact, UIActivityType.print, UIActivityType.saveToCameraRoll, UIActivityType.copyToPasteboard, UIActivityType.airDrop, UIActivityType.postToTwitter]
self.present(avc, animated: true, completion: nil)
}
//When Excluding the FB Option the code is as follow:
func otherSharing() {
let activityItem: [AnyObject] = [returnFinalImage() as AnyObject]
let avc = UIActivityViewController(activityItems: activityItem as [AnyObject], applicationActivities: nil)
avc.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.assignToContact, UIActivityType.print, UIActivityType.saveToCameraRoll, UIActivityType.copyToPasteboard, UIActivityType.airDrop, UIActivityType.postToFacebook, UIActivityType.postToTwitter]
self.present(avc, animated: true, completion: nil)
}
//I have Added Screen shot : [![enter image description here][1]][1]
[1]: https://i.stack.imgur.com/IGzqC.jpg