2015-05-06 16 views
29

Desidero creare uno UIActivityViewController che escluda alcune delle funzionalità di condivisione native tra cui Facebook e Twitter Share. Ma la condivisione di Facebook è ancora disponibile come ShareExtention.non può escludere UIActivityTypePostToFacebook da [UIActivityViewController excludedActivityTypes]

ho creare la seguente:

activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities]; 

ed esclusi Facebook impostando i tipi di attività esclusi.

activityViewController.excludedActivityTypes = @[ 
               UIActivityTypeAddToReadingList, 
               UIActivityTypeAssignToContact, 
               UIActivityTypePrint, 
               UIActivityTypeSaveToCameraRoll, 
               UIActivityTypeCopyToPasteboard, 
               UIActivityTypeAirDrop, 
               UIActivityTypePostToFacebook, 
               UIActivityTypePostToTwitter 
               ]; 

Durante l'esecuzione sul mio iPhone l'icona di Facebook viene visualizzata nonostante sia stata esclusa.

Inchiesta su come sta accadendo Vedo che il gestore di completamento per il controller di attività restituisce il activityType = com.facebook.Facebook.ShareExtension, non UIActivityTypePostToFacebook. Inoltre, quando si seleziona il pulsante Altro nel controller attività, è disponibile un interruttore per Facebook come per altre app che utilizzano la convenzione Condividi.

Perché Facebook utilizza lo shareExtention quando Twitter non lo è, e perché non posso escluderlo utilizzando le attività escluse?

Nota: l'ho provato su diversi dispositivi ma il problema esiste solo su un dispositivo che esegue 8.1.3.

Grazie

+0

avere lo stesso problema su iOS 8.1.1. Sembra che potrebbe essere un bug lato mela. – ilyashev

+0

Sembra che tu stia vedendo l'estensione di condivisione di Facebook (che fa parte dell'app Facebook per iOS). Hai installato l'app di Facebook (e quale versione)? – amudi

+0

Sì, è l'estensione di condivisione di Facebook. Ho fatto riferimento a questo nella mia domanda in realtà. Ma il punto è che se Facebook fa uso di un'estensione di condivisione, allora non è possibile disabilitare la condivisione di Facebook così: excludedActivityTypes = @ [UIActivityTypePostToFacebook, ecc. Non è utilizzabile. –

risposta

0
//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 
4

provare in questo modo

// 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]; 

vedere l'immagine qui sotto, Facebook non è incluso

In image Facebook not included

Quando commentando avc.excludedActivityTypes = @[UIActivityTypePostToFacebook]; Facebook diventa nuovamente visibile opzione su azioni in

When commenting avc.excludedActivityTypes = @[UIActivityTypePostToFacebook]; Facebook again becomes visible in share option

Problemi correlati