Monotouch – Inviare sms con Iphone

Ci sono due metodi per inviare sms utilizzando monotouch:

  1. Usando OpenUrl (Pre Os 4.0)
  2. Usando MFMessageComposeViewController (Post Os 4.0)

Ho utilizzato i due scenari ma MFMessageComposeViewControllr è preferibile come opzione per le seguenti ragioni :

  1. OpenUrl forza la chiusura dell’applicazione e apre l’applicazione di invio SMS
  2. Non puoi allegare il corpo del messaggio usando il metodo OpenUrl. Puoi solo specificare il numero


Usando OpenUrl
Devi usare sms: protocol.

var url = NSUrl.FromString (string.Format ("sms:{0}, receiver));
UIApplication.SharedApplication.OpenUrl (url);

Il campo del numero non deve contenere spazi bianchi. Questo causerà un ArgumentNullException.
Chiamando il metodo OpenUrl l’applicazione sarà messa in background e sarà aperta l’applicazione per l’invio degli SMS.
L’utente potrà inviare o annullare l’invio e dovrà riaprire manualmente l’applicazione originale.

Usando MFMessageComposeViewController
Questo metodo ha bisogno di aver referenziata il Monotouch.MessageUI namespace.

if (MFMessageComposeViewController.CanSendText) {
    MFMessageComposeViewController message =
        new MFMessageComposeViewController ();
    message.MessageComposeDelegate = new CustomMessageComposeDelegate ();
    message.Recipients = new string[] { receiver };
    message.Body = body;
    this.NavigationController.PresentModalViewController (message, true);
}

con il metodo CanSendText, saremo sicuri che il device può inviare sms (Ipod Touch non può).
Nell’ordine, definiremo la vista per comporre il messaggio estendendo MFMessageComposeViewControllerDelegate come visto precedentemente.

public class CustomMessageComposeDelegate : MFMessageComposeViewControllerDelegate
{
    public override void Finished (MFMessageComposeViewController controller,
                               MessageComposeResult result)
    {
        // TODO: Implement the method to handle
        // Cancelled, Failed or Sent result.
    }
}

PresentModalViewController visualizza il la vista del messaggio in modale con l’applicazione. Solo l’utente potrà inviare o annullare il messaggio. Al terminre il metodo Finished sarà invocato e l’applicazione ritornerà in primo piano.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...