Я использую MFMessageComposeViewController
для отправки СМС из своего приложения.В Swift не удалось отправить SMS, но MFMessageComposeViewController Delegate Показать отправлено
Метод делегирования didFinishWithResult
MFMessageComposeViewController
показывает, что сообщение отправлено успешно, но на самом деле это SMS не удалось отправить из-за недостаточного баланса. Итак, MFMessageComposeViewController
не показывает мне правильный результат.
Как узнать, что приложение «Сообщения» не удалось отправить SMS? Есть ли способ получить статус отказа?
Обнаружение изменений в доступности сообщений Чтобы получать уведомления об изменениях возможностей обмена сообщениями текущего устройства, добавьте наблюдателя в уведомление MFMessageComposeViewControllerTextMessageAvailabilityDidChange. Система передает это уведомление вашему наблюдателю, когда изменяется состояние обмена сообщениями. Для получения дополнительной информации: https://developer.apple.com/reference/messageui/mfmessagecomposeviewcontroller#//apple_ref/occ/instm/MFMessageComposeViewController/addAttachmentURL:withAlternateFilename: – Mannopson
Спасибо за вашу заботу. Фактически это уведомление отправляется, когда значение, возвращаемое методом класса canSendText(), изменилось, и canSendText() проверяет, может ли устройство отправлять SMS. Таким образом, если приложение «Сообщения» не удалось отправить SMS, мы не получим этот статус. Точно, мне нужен статус, когда приложение «Сообщения» не удалось отправить это SMS, которое я отправляю через MFMessageComposeViewController. –
Почему? Вся информация о статусе есть, я имею в виду документацию Apple. MessageComposeResult должен нести ответственность за предоставление этого статуса для вас. Они такие, как., .cancelled, .failed! Система знает и сразу сообщает вам о ее статусе. Надеюсь, это поможет вам – Mannopson