Отправка изображения + URL в UIActivityViewController в Facebook Messenger

используя простой UIActivityViewController

-(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];
}

Я хочу поделиться текстом, URL и изображением, где это уместно.

Итак, если пользователь выбирает почту, все появляется. И т. д. с остальными приложениями (pinterest, facebook, twitter)

В Facebook Messenger — если URL-адрес и изображение публикуются, экран общего доступа аварийно завершает работу. Это известная проблема (невозможно отправить изображение с URL-адресом)?


person Nick Ginanto    schedule 18.05.2015    source источник
comment
Это может быть ошибка. Можете ли вы сообщить об этом здесь? Пожалуйста, укажите вашу версию Messenger и трассировку стека.   -  person amudi    schedule 25.05.2015
comment
developers.facebook.com/bugs/949486035103197/?search_id выглядит широко по крайней мере 2 версии назад...   -  person Nick Ginanto    schedule 25.05.2015
comment
Измените свой NSURL на NSString, и он должен работать нормально.   -  person rmp    schedule 28.05.2015
comment
@rmp, тогда это будет не URL-адрес, а обычная nsstring...   -  person Nick Ginanto    schedule 28.05.2015
comment
Это правильно, но FB обычно переводит это в ссылку при публикации. Лучше всего использовать NSURL, но он может быть ненадежным. Я также обнаружил, что создание такого массива действий, кажется, работает лучше, не знаю почему, но это так. [NSArray arrayWithObjects:textToShare,url,nil];   -  person rmp    schedule 28.05.2015
comment
Я делюсь текстом и изображением с FB-мессенджером с помощью UiActivitycController, но он открывает только изображение, а текстовая часть пуста, я пытался поделиться только текстом, а затем UIActivityControl не показывает параметр общего доступа к FB-мессенджеру. Похоже, что-то связанное с той же ошибкой мессенджера.   -  person Abhishek    schedule 29.05.2015


Ответы (1)


* РЕДАКТИРОВАТЬ: обновлен до последней версии 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...
}

Вы можете попробовать :)

person Виктор Иванов    schedule 27.05.2015
comment
это фейсбук, а не мессенджер и не uiactivitycontroller - person Nick Ginanto; 27.05.2015
comment
Это не UIActivityViewController. - person abhimuralidharan; 02.07.2016