Condividere del contenuto nelle Windows Store app: lo Share contract

di Marco Leoncini, in WinRT,

Windows 8 permette di condividere facilmente del contenuto, proveniente dalle nostre applicazioni, con altre installate nel sistema operativo. La tipica condivisione è quella che avviene mediante Facebook, Twitter o il client di posta elettronica.
L'applicazione che vuole condividere il contenuto, la sorgente, deve fare pochi semplici passaggi, tutti gestiti da un'unica classe, di nome DataTransferManager.
Nel nostro script la utilizzeremo per condividere un link.
La prima cosa da fare è recuperare un'istanza del tipo DataTransferManager. A questo scopo andiamo ad aggiungere nel metodo OnNavigatedTo della pagina le seguenti righe di codice:

var  _dataTransfer = DataTransferManager.GetForCurrentView();
_dataTransfer.DataRequested += DataTransferRequested;

Il metodo GetForCurrentView ci permette di recuperare un istanza dell'oggetto DataTransferManager da utilizzare con la view corrente. L'evento DataRequested ci permette di intercettate la pressione del pulsante Share sulla charm.

void DataTransferRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
  DataPackage requestData = args.Request.Data;
  requestData.Properties.Title = "winrtitalia.com";
  requestData.Properties.Description = "il sito di riferimento per WinRT";
  requestData.SetUri(new Uri("https://www.winrtitalia.com/", UriKind.Absolute));
}

L'event handler riceve due parametri: il primo è del tipo DataTransferManagere il secondo del tipo DataRequestedEventArgs. È quest'ultimo che veicola le informazioni dalla nostra applicazione a quelle utilizzata per la condividere del link.
Per prima cosa, dobbiamo recuperare il DataPackage, per andare successivamente ad impostare il titolo e la descrizione dell'URL, utilizzando il metodo SetUri.
Il codice è così completo e ci consente di condividere, facilmente e con poche righe, il nostro contenuto con le altre applicazioni.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi