3

我正在尝试让用户通过 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 强属性。我也尝试在 ViewDidLoad 中初始化 MFController 无济于事。

更新:我并不孤单。Apple Dev Forum 上的更多最新帖子。如果有人有创造性的解决方法,请发布!

此外,对于大多数用户来说,重启手机似乎可以解决问题,但是我们无法处理发送失败,因为我们收到了 MessageComposeResultSent 结果。

4

1 回答 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];
    }

让我知道它是否有效。

于 2014-03-31T19:12:58.170 回答