Copiare nella clipboard del device con Xamarin.Forms

Xamarin.Forms permette lo sviluppo Cross Platform utizzando la stessa UI (User Interface) per iOS, Android e Windows Phone.

Durante lo sviluppo, può capitare di interagire con delle features native del device, per esempio il gps, lo stato della batteria, la connettivà o altro.

Il problema è che si deve scrivere codice nativo per tutte e tre le piattaforme.

Ma come possiamo unire il codice nativo con Xamarin.Forms ?
Per nostra fortuna ci vengono in soccorso le DependencyServices.

Le DependencyService creano uno strato  tra Xamarin.Forms e la chiamata alle Api native. Comunque, per capirne meglio il funzionamento rimando all’articolo sul sito di Xamarin.

In una delle mie ultime app avevo la necessità di copiare una news negli appunti (clipboard) del device in modo che l’utente potesse condividerla o usarla in un’altra App.

Vediamo come è possibile tramite le DependencyService :

Shared Class o PCL

    interface IClipboardService 
    {
            public void CopyToClipboard(String text);
    }

Android

    public class ClipboardService : IClipboardService
    {
            public void CopyToClipboard(String text)
            {
                    LaunchActivity.AndroidClipboardManager.Text = text;
            }
    }

Windows Phone

    public class ClipboardService : IClipboardService
    {
            public void CopyToClipboard(String text)
            {
                    Clipboard.SetText(text);
            }
    } 

iOS

  public class ClipboardService : IClipboardService
    {
            public void CopyToClipboard(String text)
            {
                    UIPasteboard clipboard = UIPasteboard.General;
                    clipboard.String = text;
            }
    } 

Buon divertimento !

Annunci

Rispondi

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...