将SMS发送到动态电话号码

时间:2013-09-03 22:12:49

标签: iphone objective-c sms

我有一个发送短信然后拨打动态电话号码的应用程序,这里是代码:

    #pragma mark - PictureListMainTableCellDelegate methods
-(void)pictureListMainTableCell:(PictureListMainTableCell *)cell wantsToCallNumber:(NSString *)number
{

    MFMessageComposeViewController *messageComposer =
    [[MFMessageComposeViewController alloc] init];
    NSString *message = @"Your Message here";
    [messageComposer setBody:message];
    messageComposer.recipients = [NSArray arrayWithObjects:@"0003233",        nil];
    messageComposer.messageComposeDelegate = self;
    [self presentViewController:messageComposer animated:YES completion:nil];
    NSLog(@"Texting telephone number [%@]", messageComposer);

    NSString *urlString = [NSString stringWithFormat:@"tel://%@", number];
    NSLog(@"calling telephone number [%@]", number);
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
    NSLog(@"%@", [self deviceLocation]);
}

电话有效,但不是短信,任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

首先检查您的设备是否可以通过以下方式发送短信:

if ( [MFMessageComposeViewController canSendText] ) {
    // build your text message like you posted
}
else {
    // handle appropriately
    // no point in trying to display the compose view controller
}

这是否解决了您的具体问题,我不确定,因为我只是关注Apple's docs

答案 1 :(得分:0)

只需在您的方法中替换此行,您就可以发送动态消息

messageComposer.recipients = [NSArray arrayWithObjects:number,nil];

并且您可以自动发送电子邮件和消息而无需按下发送按钮,但在这种情况下,有可能会拒绝您的应用程序从Apple应用程序商店,因为它不在他们的法律程序之下,因此他们将拒绝您的应用程序。 / p>

你应该检查条件

if([MFMessageComposeViewController canSendText])

否则,在iPad和iPod中,您的应用程序可能会崩溃。