MFMessageComposeViewController发送失败。

3
我正在尝试让用户通过短信发送电话验证文本。第一次他们尝试向某个号码发送消息时,看起来消息已经发送并且我们得到了带有MessageComposeResultSent回调的信息。然而,实际上没有任何消息被排队或发送。在iMessage中查看,电话号码在列表顶部有记录,但没有消息,只有一个空白屏幕。如果再次尝试向同一个号码发送短信,则可以成功发送。实现似乎非常简单,因此不确定这是否是一个错误还是我做错了什么。
以下是我们的代码:
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或强大的property。 我还尝试在ViewDidLoad中初始化MFController,但无济于事。
更新:我不是唯一一个遇到这个问题的人。 苹果开��论坛上有更多最近的帖子。 如果有人有创造性的解决方法,请发布!
另外,重新启动手机似乎可以解决大多数用户的问题,然而我们无法处理发送失败,因为我们收到了MessageComposeResultSent的结果。

我似乎遇到了相同的问题... 你这边有任何更新吗? - Piotr Tomasik
同样的问题,它似乎在许多情况下都无法正常工作。 - Fattie
这里也有同样的问题 :( 有什么解决方法吗? - Ravindra Shetty
1个回答

0
你是否遵循委托模式?
如果你将实例创建为属性,则通过self访问它。
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];
    }

如果可以的话,让我知道它是否有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接