Из того, что я понимаю, нет возможности отправить СМС с кода на iPhone.
Вместо этого я использую MFMessageComposeViewController, чтобы показать приложение SMS.
Я устанавливаю тело и получателей раньше:
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
controller.body = @"message";
controller.recipients = [NSArray arrayWithObject:@"phonenumber"];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
Я хочу убедиться, что сообщение и получатель остаются без изменений и остаются такими же, как я установил из кода.
Однако пользователь может изменить получателей и / или сообщение перед отправкой SMS.
Я попытался проверить тело и получателей в методе делегата
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
NSLog(@"Message: %@", controller.body);
NSLog(@"Recipients:");
for (NSString *recipient in controller.recipients) {
NSLog(recipient);
}
switch (result) {
case MessageComposeResultCancelled:
NSLog(@"Result: canceled");
break;
case MessageComposeResultSent:
NSLog(@"Result: sent");
// Check that the correct message has been sent
if([controller.body isEqualToString:correctMessage]) {
BOOL correctRecipient = NO;
for (NSString *recipient in controller.recipients) {
if([recipient isEqualToString:correctRecipient]) {
correctRecipient = YES;
}
}
if(correctRecipient) {
NSLog(@"Correct message sent to correct recipient!");
} else {
NSLog(@"Message or recipient was wrong");
}
}
break;
case MessageComposeResultFailed:
NSLog(@"Result: failed");
break;
default:
NSLog(@"Result: not sent");
break;
}
[self dismissModalViewControllerAnimated:YES];
}
Однако, controller.body и controller.recipients не показывают изменения, внесенные в приложение SMS. Документация подтверждает это, говоря, что
body: начальное содержание сообщения.
Получатели: массив строк, содержащий начальных получателей сообщения.
Есть ли способ проверить ФАКТИЧЕСКОЕ сообщение и получателей, которые были использованы?
Заранее спасибо!