MFMessageComposeViewController не может отправить

Я пытаюсь, чтобы пользователи отправляли текст подтверждения телефона через SMS. В первый раз, когда они пытаются отправить сообщение на номер, похоже, что сообщение проходит, и мы получаем обратный вызов с MessageComposeResultSent. Однако на самом деле ни одно сообщение не ставится в очередь и не отправляется. Взглянув в iMessage, в верхней части списка есть запись номера телефона, но нет сообщения, просто пустой экран. Если отправить SMS еще раз на тот же номер, оно пройдет. Реализация кажется довольно простой, поэтому не уверен, что это ошибка или я делаю что-то не так.

Вот наш код:

MFController = [[MFMessageComposeViewController alloc] init];

if([MFMessageComposeViewController canSendText])
{

    self.MFController.body = [NSString stringWithFormat:@"Please send this message to verify your phone number.\n\n(%@)",token];
    self.MFController.recipients = [NSArray arrayWithObject:@"+PHONENUMBER"];
    self.MFController.messageComposeDelegate = self;    
    [self presentViewController:MFController animated:YES completion:nil];
}

Я попытался объявить MFController непосредственно в методе как сильное свойство ivar. Я также пытался инициализировать MFController в ViewDidLoad безрезультатно.

Обновление: я здесь не один. Гораздо больше свежих сообщений на форуме разработчиков Apple. Если у кого есть творческий подход, пишите!

Кроме того, перезагрузка телефона, по-видимому, решает проблему для большинства пользователей, однако у нас нет способа справиться с ошибкой отправки, поскольку мы получаем результат MessageComposeResultSent.


person MattDiep    schedule 12.11.2013    source источник
comment
Кажется, я столкнулся с той же проблемой... Какие-нибудь обновления с вашей стороны?   -  person Piotr Tomasik    schedule 15.01.2014
comment
То же самое здесь, кажется, во многих случаях просто не работает.   -  person Fattie    schedule 21.01.2014
comment
Та же проблема здесь :( Любые обходные пути, ребята?   -  person ravi    schedule 04.03.2014


Ответы (1)


Соответствуете ли вы делегату?

если вы создали экземпляр как свойство, доступ к нему осуществляется через себя,

self.MFController = [[MFMessageComposeViewController alloc] init];

    if([MFMessageComposeViewController canSendText])
    {

        self.MFController.body = [NSString stringWithFormat:@"Please send this message to verify your phone number.\n\n(%@)",token];
        self.MFController.recipients = [NSArray arrayWithObject:@"+PHONENUMBER"];
        self.MFController.messageComposeDelegate = self;    
        [self presentViewController:self.
MFController animated:YES completion:nil];
    }

Дайте мне знать, если это работает.

person Sanoj    schedule 31.03.2014