Windows Phone 7 Launchers & Choosers – Parte 3: i launchers in dettaglio

Print Content | More

Nei post precedenti abbiamo capito come funzionano i chooser e come possiamo utilizzarli all’interno della nostra applicazione. I launchers hanno la stessa identica architettura, solo che non forniscono informazioni di ritorno: si limitano infatti a lanciare una delle applicazioni native di Windows Phone 7, dandoci la possibilità di valorizzare alcune informazioni direttamente dalla nostra applicazione. Per questo motivo i launchers, al contrario dei choosers, non implementano l’evento Completed.

Qui di seguito trovate l’elenco completi dei launchers attualmente disponibili: per ognuno di essi troverete una breve descrizione, il loro funzionamento, se sono testabili o meno con l’emulatore, un piccolo esempio e se questi, in condizioni normali, provocano o meno il tombstoning dell’applicazione. Ricordatevi che, anche nel caso in cui trovate l’indicazione che il launcher non provoca il tombstoning, non si tratta di una certezza: è sempre bene essere pronti a gestire il tombstoning perchè in condizioni particolari lo stato potrebbe non essere automaticamente mantenuto.

E-mail compose (EmailComposeTask)

Questo launcher serve per spedire e-mail dalla nostra applicazione: dato che non abbiamo modo di spedirle nativamente, quello che il task fa è creare una nuova mail in Outlook già compilata con le informazioni che ci servono.  L’oggetto EmailComposeTask espone le seguenti proprietà:

  • To
  • Cc
  • Subject
  • Body

E’ testabile?
No, dato che non abbiamo modo di configurare un account di posta.

Causano il tombstoning dell’applicazione?

Si

Esempio

EmailComposeTask mailTask=new EmailComposeTask();
mailTask.To = "abc@abc.com";
mailTask.Subject = "Subject";
mailTask.Body = "Body":
mailTask.Show();

Marketplace Detail (MarketplaceDetailTask)

Questo launcher ci permette di aprire il Marketplace direttamente su una specifica applicazione: tale risultato si ottiene valorizzando la proprietà ContentIdentifier con il ProductId (rintracciabile nel file WMAppManifest.xml dell’applicazione). Se questo parametro non viene specificato, il launcher di default apre la pagina sul Marketplace dell’applicazione stessa.

E’ testabile?
Si, a patto che siamo a conoscenza di un ProductId valido.

Causano il tombstoning dell’applicazione?

Si

Esempio

MarketplaceDetailTask detailTask=new MarketplaceDetailTask();
detailTask.ContentIdentifier = “ {d0e2a94c-320e-4db7-b310-4cc6f1b004ed}”;
detailTask.Show();

Marketplace Hub (MarketplaceHubTask)

Questo launcher ci permette di aprire il Marketplace direttamente su una specifica categoria di quelle disponibili: Applicazioni o Musica. Per farlo, dovrete valorizzare la proprietà ContentType dell’oggetto con uno dei valori disponibili nell’enumeratore MarketplaceContentType.

E’ testabile?
Si, il Marketplace non è presente tra le applicazioni disponibili nella versione base ma è già attivo.

Causano il tombstoning dell’applicazione?

Si

Esempio

MarketplaceHubTask hubTask=new MarketplaceHubTask();
hubTask.ContentType = MarketplaceContentType.Applications;
hubTask.Show();

Marketplace Review (MarketplaceReviewTask)

Questo launcher ci permette di aprire il Marketplace direttamente sulla pagina contenente le recensioni ricevute dalla nostra applicazione. Può essere utile per invitare gli utenti che hanno scaricato la nostra applicazione a lasciare una recensione.

E’ testabile?
No, dato che non è ancora possibile caricare applicazioni per Windows Phone 7 sul Marketplace. Si aprirà una pagina di dettaglio vuota, ma comparirà un alert invitandovi a riprovare più tardi perchè le informazioni non sono momentaneamente disponibili.

Causano il tombstoning dell’applicazione?

Si

Esempio

MarketplaceReviewTask reviewTask=new MarketplaceReviewTask();
reviewTask.Show();

Marketplace Search (MarketplaceSearchTask)

Questo launcher ci permette di lanciare una ricerca nel Marketplace per una parola specifica, che viene passata nella proprietà SearchTerms dell’oggetto. Volendo, è possibile anche limitare la ricerca ad una categoria ben precisa, specificando anche la proprietà ContentType (nello stesso modo in cui viene valorizzata per il MarketplaceHubTask).

E’ testabile?
Si, anche se poi ovviamente gli elementi trovati nel Marketplace non saranno scaricabili.

Causano il tombstoning dell’applicazione?

Si

Esempio

MarketplaceSarchTask searchTask=new MarketplaceSearchTask();
searchTask.ContentType = MarketplaceContentType.Applications;
searchTask.SearchTerms = "Launchers";
searchTask.Show();

Media Player (MediaPlayerLauncher)

Questo launcher vi permette di lanciare il media player di Windows Phone 7 per riprodurre un contenuto audio e video, che può essere di due tipi: salvato nell’isolated storage (ad esempio, perchè si tratta di un file scaricato dalla rete tramite la vostra applicazione) oppure in bundle (quindi incluso nello XAP e da voi inserito in fase di realizzazione dell’applicazione).

Per funzionare correttamente, dovrete valorizzare le seguenti proprietà dell’oggetto:

  • Media: è il percorso (sotto forma di Uri) del vostro file multimediale (ad esempio, new Uri("Media/Barbarian.mp3", UriKind.Relative) ).
  • Location: è la tipologia di supporto su cui è salvato il file multimediale. Accetta un enumeratore di tipo MediaLocationType e serve a distinguere tra file memorizzato nello storage (Data) o in bundle con l’applicazione (Install).
  • Controls: è possibile specificare quali controlli per la riproduzione volete. Accetta uno o più enumeratori di tipo MediaPlaybackControls, separati eventualmente dall’operatore |.

E’ testabile?
Si.

Causano il tombstoning dell’applicazione?

No.

Esempio

MediaPlayerLauncher mediaLauncher=new MediaPlayerLauncher();
mediaLauncher.Media = new Uri("Media/Barbarian.mp3", UriKind.Relative);
mediaLauncher.Location = MediaLocationType.Install;
mediaLauncher.Controls = MediaPlaybackControls.All;
mediaLauncher.Show();

Phone Call (PhoneCallTask)

Questo launcher vi permette di lanciare una telefonata dall’interno della vostra applicazione. La telefonata non partirà direttamente, ma richiederà comunque una esplicita conferma da parte dell’utente. Le informazioni necessarie per lanciare la chiamata sono:

  • PhoneNumber: il numero di telefono da chiamare.
  • DisplayName: il nome da mostrare.

Una volta chiamato il metodo Show, apparirà un alert, che chiederà conferma se si vuole chiamare il numero di telefono (con relativo nome) passati come parametri all’oggetto. La particolarità di questo launcher è che non provoca la chiusura della vostra applicazione: il box indicante la chiamata in corso apparirà infatti in overlay sulla vostra applicazione e, una volta chiusa la conversazione, semplicemente scomparirà. In fase di testing ve ne accorgerete perchè, se state tracciando gli eventi legati al ciclo di vita, vedrete che lo stato Deactivated non verrà scatentato.. Inoltre, eventuali dati presenti nella pagina (ad esempio, i valori delle textbox) rimarranno intatti.

E’ testabile?
Si, l’emulatore base mette a disposizione gli strumenti necessari per simulare una chiamata.

Causano il tombstoning dell’applicazione?

No, questo launcher si differenzia dagli altri perchè non provoca nemmeno la sospensione dell’applicazione.

Esempio

PhoneCallTask callTask=new PhoneCallTask();
callTask.DisplayName = "John Smith";
callTask.PhoneNumber = "123456789";
callTask.Show();

Search Task (SearchTask)

Questo launcher vi permette di lanciare una ricerca sul web tramite il motore di ricerca integrato in Windows Phone, basato su Bing. L’unica informazione necessaria è il testo da ricercare, che va impostato nella proprietà SearchQuery dell’oggetto.

E’ testabile?
Si, l’emulatore permette di fare ricerche tramite Bing (l’applicazione è normalmente disponibile premendo il pulsante con la lente d’ingrandimento sull’emulatore).

Causano il tombstoning dell’applicazione?

Si

Esempio

SearchTask searchTask=new SearchTask();
searchTask.SearchQuery = "Windows Phone 7";
searchTask.Show();

SMS Compose (SmsComposeTask)

Questo launcher vi permette di inviare SMS dalla vostra applicazione: verrà avviata l’applicazione SMS nativa di Windows Phone, con già valorizzati testo e destinatario grazie alle seguenti proprietà dell’oggetto:

  • To: il numero di telefono del destinatario
  • Body: il testo del messaggio

Analogamente a quanto avviene per il launcher EmailCompose, anche in questo caso l’SMS non viene inviato immediatamente, ma richiede un’ulteriore conferma da parte dell’utente.

E’ testabile?
Si, l’emulatore permette di simulare l’invio di un SMS: anche se l’applicazione non è normalmente accessibile, viene attivata nel momento in cui si utilizza questo launcher.

Causano il tombstoning dell’applicazione?

Si

Esempio

SmsComposeTask smsTask=new SmsComposeTask();
smsTask.To = "123456789";
smsTask.Body = "Message";
smsTask.Show();

Web Browser (WebBrowserTask)

Questo launcher vi permette di aprire Internet Explorer direttamente su uno specifico indirizzo: ciò avviene valorizzando con la proprietà URL dell’oggetto.

E’ testabile?
Ovviamente si, dato che Internet Explorer è l’unica applicazione ufficialmente disponibile sull’emulatore base.

Causano il tombstoning dell’applicazione?

Si

Esempio

WebBrowserTask browserTask=new WebBrowserTask();
browserTask.URL = "http://qmatteoq.tostring.it";
browserTask.Show();

Conclusione

Abbiamo concluso la panoramica dei launchers attualmente disponibili: nel prossimo post, vedremo invece i choosers disponibili. Qui di sotto trovate il link per scaricare una semplice applicazione da me realizzata che implementa tutti i launchers menzionati in questo articolo.


Windows Phone , Microsoft , Launchers

0 comments

Related Post


(will not be published)
(es: http://www.mysite.com)