2017-02-02 1 views
0

Ich verwende MFMessageComposeViewController, um SMS aus meiner App zu senden.In Swift, Senden von SMS fehlgeschlagen, aber MFMessageComposeViewController Delegate Show gesendet

Die Delegiertenmethode didFinishWithResult von MFMessageComposeViewController zeigt, dass die Nachricht erfolgreich gesendet wurde, diese SMS jedoch aufgrund eines unzureichenden Saldos nicht gesendet werden konnte. So zeigt mir MFMessageComposeViewController nicht das richtige Ergebnis.

Woher weiß ich, dass die Nachrichten-App keine SMS senden konnte? Gibt es eine Möglichkeit, den Status fehlgeschlagen zu erhalten?

+0

Erkennen von Änderungen an der Verfügbarkeit von Messaging Wenn Sie über Änderungen an den Messagingfunktionen des aktuellen Geräts benachrichtigt werden möchten, fügen Sie der MFMessageComposeViewControllerTextMessageAvailabilityDidChange-Benachrichtigung einen Beobachter hinzu. Das System übermittelt diese Benachrichtigung an Ihren Beobachter, wenn sich der Status der Nachrichtenübermittlung ändert. Für weitere Informationen: https://developer.apple.com/reference/messagui/mfmessagecomposeviewcontroller#//apple_ref/occ/instm/MFMessageComposeViewController/addAttachmentURL:withAlternateFilename: – Mannopson

+0

Vielen Dank für Ihr Interesse. Diese Benachrichtigung wurde tatsächlich gesendet, wenn der von der Klassenmethode canSendText() zurückgegebene Wert geändert wurde, und canSendText() wird nur überprüft, wenn das Gerät SMS senden kann. Wenn die Nachrichten-App keine SMS senden konnte, erhalten wir diesen Status nicht. Genau, ich brauche den Status, wenn die Nachrichten-App diese SMS, die ich über MFMessageComposeViewController sende, nicht senden konnte. –

+0

Warum? Alle Status-Sachen sind da, ich meine Apple's Dokumentation. Das MessageComposeResult muss dafür verantwortlich sein, diesen Status für Sie bereitzustellen. Sie sind .sent, .ancancelled, .failed! Das System weiß und teilt Ihnen sofort seinen Status mit. Hoffe, es hilft Ihnen – Mannopson

Antwort

1

Es ist nicht möglich zu ermitteln, ob die Nachricht gesendet oder fehlgeschlagen ist.

Wir erhalten ein Ergebnis in messageComposeViewController:didFinishWithResult:, sobald eine Nachricht erfolgreich zum Senden in die Warteschlange gestellt wurde.

+0

Wenn es nicht möglich ist, über die Nachrichten-App zu erfahren, was kann ich für meine App tun? Ich brauche den genauen Status des Sendens von SMS. –