Проверка статуса отправки смс iPhone - PullRequest
0 голосов
/ 11 августа 2011

Можно проверить статус отправки SMS?например,

MFMessageComposeViewController * smsPicker = [[MFMessageComposeViewController alloc] init];

smsPicker.messageComposeDelegate = self;

smsPicker.body = @"Body";

[self presentModalViewController:smsPicker animated:YES];

[smsPicker release];

Я не знаю почему, но делегат - (void) messageComposeViewController: (MFMessageComposeViewController *) controller didFinishWithResult: (MessageComposeResult) result;выполняется перед отправкой и работает, если пользователь отменил SMS.

И мне нужно знать, отправлено SMS или нет (например, ошибка сотовой сети или что-то не так).Спасибо за помощь в будущем!

Ответы [ 2 ]

1 голос
/ 11 августа 2011

К сожалению, это не учитывает прерывания сотовой сети, по крайней мере. Например, в режиме полета делегат получает MessageComposeResultSent!

Я зарегистрировал радар для этого . Дублирование может решить проблему раньше.

1 голос
/ 11 августа 2011

Вы можете использовать параметр result messageComposeViewController:didFinishWithResult: для проверки состояния сообщения. Его тип MessageComposeResult :

enum MessageComposeResult {
   MessageComposeResultCancelled,
   MessageComposeResultSent,
   MessageComposeResultFailed
};

Имейте в виду, что MessageComposeResultSent может интерпретироваться только как успешная постановка в очередь сообщения для последующей отправки. Фактическая отправка произойдет, когда устройство сможет отправить.


Как проверить, может ли устройство отправлять сообщения?

Чтобы проверить, может ли устройство отправлять текстовые сообщения, используйте MFMessageComposeViewController canSendText метод класса. Согласно документации, вы должны всегда вызывать этот метод, прежде чем пытаться представить сообщение compose view controller.

Однако, это не скажет вам, если устройство может отправить сообщение сейчас (в случае, если вы спросили с этим утверждением: Фактическая отправка произойдет, когда устройство сможет отправить ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...