Метод setInitialText в SLComposeViewController iOS 8.3 не отображает текст на листе Facebook

Приведенный ниже фрагмент кода является обратным вызовом для экранной кнопки. Лист Facebook появляется, но не содержит текста. Однако, если вы замените SLServiceTypeFacebook на SLServiceTypeTwitter, он покажет исходный текст. Я использую XCode 6.3.1 и iOS 8.3 на iPhone 6. Заранее спасибо.

-(IBAction)facebookButton:(id)sender
{
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        NSString* facebookText = @"Awesome App";
        SLComposeViewController *fbPostSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        [fbPostSheet setInitialText:facebookText];
        [self presentViewController:fbPostSheet animated:YES completion:nil];
    }
    else{
         UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Unable to Connect to Facebook"
                              message:@"Make sure your device has an internet connection and you have your Facebook account setup in the Settings App"
                              delegate:self
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alertView show];
    }
}        

person Graham French    schedule 29.04.2015    source источник
comment
Исходный текст, удаляемый из диалогового окна Facebook, стал проблемой после последнего обновления Facebook. Ты не одинок.   -  person Daniel Storm    schedule 29.04.2015
comment
Столкнулся с той же проблемой в ios8.2 и пока не нашел решения.   -  person Teena nath Paul    schedule 30.04.2015
comment
такая же проблема у меня 8.0   -  person Rohit suvagiya    schedule 01.09.2015


Ответы (2)


Если вы удалите приложение Facebook на устройстве, появится исходный текст.

person Chrisswong    schedule 01.05.2015
comment
Удаление приложения Facebook на моем iPhone позволяет отображать исходный текст. Однако я не могу попросить своих пользователей удалить их приложение Facebook, чтобы они могли публиковать свои результаты на Facebook. - person Graham French; 02.05.2015
comment
Вы можете захотеть иметь собственный пользовательский интерфейс для вашего случая. Напоминаем, что вы должны отправить свое приложение на рассмотрение в Facebook. Я также гуглил эту проблему, но, к сожалению, я не нашел никакой документации по этому поводу. - person Chrisswong; 04.05.2015
comment
У меня такая же проблема в игре. Но, чтобы было ясно, @Chrisswong, вы говорите, что мы должны зарегистрировать наши приложения в Facebook, чтобы решить эту проблему? - person Steven W. Disbrow; 04.05.2015
comment
Создание собственного пользовательского интерфейса для публикации в Facebook позволяет вам предоставлять любые исходные тексты для публикации в Facebook. Однако вы должны зарегистрироваться на сайте разработчиков Facebook , включить разрешение publish_actions и отправить сборку симулятора iOS на рассмотрение в Facebook, чтобы может выйти в эфир с обменом Facebook и поделиться с общественностью. Вы должны знать об этой ПОЛИТИКЕ для исходного текста, который вы предоставили. - person Chrisswong; 05.05.2015
comment
@Chrisswong, как я понял из предоставленной вами ссылки на Политику, Facebook теперь отклоняет использование предварительного заполнения. Так что создание собственного компоновочного контроллера не решит проблему. Я предполагаю, что это причина изменения в iOS 8.3. - person John Tracid; 09.05.2015
comment
@JohnTracid На самом деле одно из моих приложений использует пользовательский интерфейс для обмена в Facebook. Тем не менее, я предварительно заполнил текст внутри текстового представления, чтобы пользователь мог редактировать текст, и, наконец, обзор Facebook одобрил это. Насколько я понимаю, предварительное заполнение — это то, что пользователь не может редактировать, и оно отображается в общем контенте. - person Chrisswong; 11.05.2015
comment
Использовать диалоговое окно «Поделиться в Facebook» - person Kirit Vaghela; 20.06.2015
comment
@Chrisswong, не могли бы вы поделиться ссылкой на свое приложение, чтобы мы поняли, как создать собственный диалог. Меня засасывает то же самое с нескольких недель. Спасибо - person Usman Nisar; 07.07.2015
comment
@ManiKhalil, не беспокойся! это было довольно давно, поэтому большинство из нас знает об этой проблеме и предоставляет пользователям другие альтернативы. - person Chrisswong; 25.02.2016

На самом деле это работает, если вы установите текст внутри обработчика завершения:

NSString* facebookText = @"Awesome App";
SLComposeViewController *fbPostSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
//[fbPostSheet setInitialText:facebookText];
[self presentViewController:fbPostSheet animated:YES completion:^
{
    [fbPostSheet setInitialText:facebookText];
}];
person Asif Asif    schedule 04.02.2016