2015-05-18 29 views
21

pomocą prostego UIActivityViewControllerPrzesyłanie obrazu + URL w UIActivityViewController w 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]; 
} 

chcę podzielić się tekst, URL i obrazu w stosownych przypadkach.

Jeśli użytkownik wybierze pocztę, wszystko się pojawi. Itd z pozostałymi aplikacjami (pinterest, facebook, twitter)

Na Facebooku Messenger - jeśli adres URL i obraz są udostępnione, ekran udostępniania ulega awarii. Czy jest to znany problem (nie można przesłać obrazu z adresem URL)?

+0

to może być błąd. Czy możesz [zgłosić to tutaj] (https://developers.facebook.com/bugs/)? Dołącz swoją wersję Messenger i ślad stosu. – amudi

+0

https://developers.facebook.com/bugs/949486035103197/?search_id wygląda na rozpowszechnioną z co najmniej 2 wersji temu ... –

+0

Zmień NSURL na NSString i powinno działać poprawnie. – rmp

Odpowiedz

4

* EDIT: Aktualizacja do najnowszej 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... 
} 

Można spróbować :)

+14

czyli facebook, nie messenger, a nie w uiactivitycontroller –

+1

To nie jest UIActivityViewController. – abhi1992