我正在尝试让用户通过短信发送电话验证文本。他们第一次尝试将消息发送到一个号码时,看起来消息通过了,我们得到了一个带有 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 结果。
最佳答案
你符合委托(delegate)人的要求吗?
如果您将实例创建为属性并通过自身访问它,
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];
}
让我知道它是否有效。
关于ios - MFMessageComposeViewController 发送失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19936298/