21

utilizzando un semplice UIActivityViewControllerInvio immagine + url nella UIActivityViewController a Facebook Messenger

-(void)share{ 

    NSString *textToShare = _mytext; 
NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
    UIImage *imageToShare = _myimage; 
    NSArray *activityItems = @[textToShare, url, imageToShare]; 
    UIActivityViewController *activityVC = 
    [[UIActivityViewController alloc] initWithActivityItems:activityItems 
             applicationActivities:nil]; 

    [self presentViewController:activityVC animated:YES completion:nil]; 
} 

voglio condividere un testo, URL e immagine, se del caso.

Quindi, se l'utente sceglie la posta, tutto appare. Ecc con il resto delle app (pinterest, facebook, twitter)

Su Facebook Messenger - Se un URL e un'immagine sono condivisi, la schermata di condivisione si interrompe. Si tratta di un problema noto (non è possibile inviare immagini con un URL)?

+0

Potrebbe essere un bug. Puoi [segnalarlo qui] (https://developers.facebook.com/bugs/)? Si prega di includere la versione di Messenger e la traccia dello stack. – amudi

+0

https://developers.facebook.com/bugs/949486035103197/?search_id sembra come se fosse diffuso da almeno 2 versioni fa ... –

+0

Cambia il tuo NSURL in un NSString e dovrebbe funzionare correttamente. – rmp

risposta

4

* EDIT: aggiornato per l'ultimo SDK

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; 
content.contentTitle = @"Your title"; 
content.contentDescription = @"Some description text maybe..."; 
content.contentURL = [NSURL URLWithString:@"http://yourlink.com"]; 
content.imageURL = [NSURL URLWithString:@"http://yourlink.com/theImage.png"]; 

[FBSDKMessageDialog showWithContent:content delegate:self]; 


// Delegate 
- (void)sharer: (id<FBSDKSharing>)sharer didCompleteWithResults: (NSDictionary *)results 
{ 
    BOOL complete = [[results valueForKeyPath:@"didComplete"] boolValue]; 
    NSString *completionGesture = [results valueForKeyPath:@"completionGesture"]; 
    if (completionGesture && [completionGesture isEqualToString:@"cancel"]) { 
     // action was canceled by the user 
    } 

    if (complete) { 
     // the message/link/image was sent 
    } 
} 

- (void) sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error 
{ 
    // handle error... 
} 

Si può fare un tentativo :)

+14

ovvero facebook, non messenger e non in controllore uiactivity –

+1

Questo non è UIActivityViewController. – abhi1992