Developpement Windows Phone - partie 24
Launchers et Choosers
Cet article fait partie d’une série d’articles sur le développement Windows Phone. Il s’agit d’une traduction des articles se trouvant sur la MSDN.
Sommaire
Bien débuter et fondamentaux
- Bien démarrer (Hello World)
- Créer une interface utilisateur pour Windows Phone en XAML
- Utiliser des contrôles
- Types de contrôles
- Contrôles Panorama et Pivot
- Travailler avec du texte sur le Windows Phone
- Mise en page sur l’écran
- Orientations de l’écran
- Saisie tactile
- Navigation
- Exécuter votre application en arrière-plan (tombstoning)
- Notifications Push pour le développement Windows Phone
- Publier votre application sur le Marketplace
Visuels et média
Travailler avec les données
- Obtenir des données dans vos applications Windows Phone
- Data binding
- Isolated storage
- Accéder à un service Web REST
- Consommer des données Windows Azure
Sondes et autres fonctionnalités spécifiques au téléphone
- Lanceurs et choosers
- Détecter des mouvements (accéléromètres)
- Développer avec le GPS Windows Phone (Services de localisation)
- Développer avec l’appareil photo du Windows Phone
Launchers et Choosers
Silverlight pour les applications Windows Phone ne dispose pas d’un accès direct aux applications intégrées au téléphone, tel que le numéroteur téléphonique, ou les bibliothèques de données utilisateur, ainsi que la bibliothèque de photos. C'est parce que toutes les applications Windows Phone sont isolées les unes des autres dans des sandbox.
Une application ne peut pas démarrer directement une autre application, accéder à la mémoire d'une autre application, ou accéder au stockage de données d'une autre application. Les Launchers et les Choosers permettent indirectement à Silverlight d’utiliser les applications intégrées à l'appareil et d'accéder à des bibliothèques de données communes. Ce tutoriel décrit ce que les Launchers et les Choosers font et comment les utiliser dans vos applications.
Ce tutoriel contient les sections suivantes:
Introduction aux Launchers et Choosers
Les Launchers (lanceurs) et les Choosers (sélecteurs) permettent aux applications Silverlight d’accéder aux applications intégrées ainsi qu’aux stockages de données sur le périphérique Windows Phone. Par exemple, si vous voulez que votre application effectue un appel téléphonique, vous devrez utiliser le Launcher PhoneCallTask pour démarrer l'application du numéroteur téléphonique. Pour accéder à des bibliothèques de données sur l'appareil, telles que la bibliothèque de photos, vous devrez utiliser le Chooser PhotoChooserTask.
La différence entre les Launchers et les Choosers est que les Launchers ne retournent pas de valeur lorsque l'application se termine, et les Choosers retournent une valeur. Par exemple, le Launcher EmailComposeTask démarre l'application messagerie et quand il en sort, le contrôle est simplement retourné à l'application qui l’a appelé. Le Chooser CameraCaptureTask, démarre l'application caméra, mais après que l’utilisateur ai pris une photo, il fermera l’application caméra et retournera la photo qui a été prise.
Lorsque vous appelez un Launcher ou Chooser, votre application Silverlight est désactivée et l'application exécutée est démarrée. Quand l'application qui a été exécutée est quittée, votre application est réactivée. Ce processus est appelé le tombstoning et peut avoir de subtils effets sur l'état de votre application. Pour plus d'informations sur la façon de traiter correctement le tombstoning dans votre application Silverlight, allez voir la section le modèle d'exécution pour Windows Phone sur MSDN ainsi que le tutoriel sur le Tombstoning.
Les classes Launchers et Choosers sont présentes dans l’espace de nom Microsoft.Phone.Tasks, ainsi vous aurez besoin d'inclure une directive « using » dans votre application.
Utilisation des Launchers
Le processus d'utilisation de toutes les classes Launcher est le même. Pour utiliser une classe Launcher, suivez les étapes suivantes:
- Créez une instance de la classe Launcher
- Définissez les propriétés de l’objet Launcher
- Appelez la méthode Show
Par exemple, pour utiliser le Launcher Email afin de composer un nouveau email, vous pouvez créer une instance de la classe EmailComposeTask, et définir les propriétés To,Body et Subject et appeler la méthode Show pour démarrer l’application. Quand vous sortez de l’application Email, le contrôle est retourné à votre application.
Le tableau suivant liste les différents Launchers disponibles :
launcher |
Description |
Autorise une application à lancer l'application e-mail avec un nouveau message affiché. Utilisez cette option pour permettre aux utilisateurs d'envoyer des emails à partir de votre application. |
|
Autorise une application à lancer l’application MarketPlace Windows Phone et d’afficher la page de détails pour un produit spécifié. |
|
Autorise une application à lancer l’application MarketPlace. |
|
Autorise une application à lancer l’application Marketplace Windows Phone et d’afficher les résultats de recherche en fonction des termes spécifiés. |
|
Autorise une application à lancer le lecteur média. |
|
Autorise une application à lancer l'application Phone. Utilisez cette option pour permettre aux utilisateurs d’effectuer un appel téléphonique à partir de votre application. |
|
Autorise une application à lancer l’application de recherche sur internet. |
|
Autorise une application à lancer l'application de messagerie. L'application de messagerie commence un nouveau message SMS. |
|
Autorise une application à lancer le navigateur internet |
L'exemple suivant montre comment utiliser le Launcher PhoneCallTask pour faire apparaitre le numéroteur téléphonique de l'appareil. Une interface utilisateur de base est créée, et possède un Button pour appeler le Launcher.
XAML
Code Snippet
- <Button Name="ButtonDialer"
- Content="Place Call"
- Height="100" Width="200"
- Click="ButtonDialer_Click" />
L'image suivante montre un exemple d'application fonctionnant dans l'émulateur Windows Phone.
Par la suite, un objet PhoneCallTask est instancié et les propriétés DisplayName et PhoneNumber sont définies. Enfin, la méthode Show est appelée pour démarrer le Launcher.
C#
Code Snippet
- private void ButtonDialer_Click(object sender, RoutedEventArgs e)
- {
- // The launcher.
- PhoneCallTask phoneCallTask = new PhoneCallTask();
- // Contact information to pass to the phone dialer application.
- phoneCallTask.PhoneNumber = "(555)-555-5555";
- phoneCallTask.DisplayName = "Fred";
- // Launches the phone dialer application.
- phoneCallTask.Show();
- }
Visual Basic
Code Snippet
- Private Sub ButtonDialer_Click(sender As Object, e As RoutedEventArgs)
- ' The launcher.
- Dim phoneCallTask As New PhoneCallTask()
- ' Contact information to pass to the phone dialer application.
- phoneCallTask.PhoneNumber = "(555)-555-5555"
- phoneCallTask.DisplayName = "Fred"
- ' Launches the phone dialer application.
- phoneCallTask.Show()
- End Sub
Après que la méthode Show soit appelée, l'utilisateur est invité à passer l'appel ou non. L'image suivante montre un exemple d'application fonctionnant dans l'émulateur Windows Phone.
Si l'utilisateur accepte de passer l'appel, l'application téléphone est lancée et le numéro de téléphone est composé. Les images suivantes montrent un exemple d'application fonctionnant dans l'émulateur Windows Phone.
L'exemple suivant montre comment utiliser le Launcher SearchTask pour effectuer une recherche sur Internet à partir de votre application.
Une interface utilisateur de base est créée et possède un Button pour appeler le Launcher.
XAML
Code Snippet
- <Button Name="ButtonSearch"
- Height="100" Width="250"
- Content="Search"
- Click="ButtonSearch_Click" />
L'image suivante montre un exemple d'application fonctionnant dans l'émulateur Windows Phone.
Ensuite, un SearchTask est instancié et la propriété SearchQuery est définie sur "Silverlight Windows Phone". Enfin, la méthode Show est appelée pour démarrer l'application.
C#
Code Snippet
- private void ButtonSearch_Click(object sender, RoutedEventArgs e)
- {
- // The launcher.
- searchTask searchTask = new SearchTask();
- // Set the Search query
- searchTask.SearchQuery = "Silverlight Windows Phone";
- // Launches the phone Search application.
- searchTask.Show();
- }
Visual Basic
Code Snippet
- Private Sub ButtonSearch_Click(sender As Object, e As RoutedEventArgs)
- ' The launcher.
- Dim searchTask As searchTask = New SearchTask()
- ' Set the Search query
- searchTask.SearchQuery = "Silverlight Windows Phone"
- ' Launches the phone Search application.
- searchTask.Show()
- End Sub
Après que la méthode Show soit appelée, l'utilisateur est invité par une boîte de dialogue s’il souhaite autoriser la recherche à s’effectuer. L'image suivante montre la page de confidentialité concernant la recherche.
Si l'utilisateur accepte la déclaration de confidentialité, la recherche est exécutée et les résultats de recherche sont affichés. Les images suivantes montrent un exemple d'application fonctionnant dans l'émulateur Windows Phone.
Utilisation des Choosers
L’utilisation des Choosers est très similaire à celle des Launchers. La principale différence est le retour des valeurs des Choosers au travers de l'évènement Completed. Pour utiliser un Chooser, effectuez les étapes suivantes:
- Créez une instance de la classe Chooser
- Ajoutez un gestionnaire d’évènement sur l’évènement Completed
- Définissez les propriétés de l’objet Chooser.
- Appelez la méthode Show.
- Récupérez la valeur de retour de l’application Chooser dans le gestionnaire d’évènement Completed.
Par exemple, pour utiliser le Chooser de photos, vous devrez créer une instance de la classe PhotoChooserTask, ajouter un gestionnaire d'évènement à l’évènement Completed, appeler la méthode Show, puis dans le gestionnaire Completed, si le TaskResult est OK, récupérer les données de l’image à partir la propriété ChosenPhoto des arguments de l’évènement.
Le tableau suivant énumère les différents Choosers qui sont disponibles:
Launcher |
Description |
Autorise une application à lancer l’application Camera. Utilisez cette classe pour permettre aux utilisateurs de prendre une photo à partir de votre application. |
|
Autorise une application à lancer l’application Contacts. Utilisez cette classe pour obtenir l’adresse email d’un contact sélectionné par un utilisateur. |
|
Autorise une application à lancer l’application Contacts. Utiliser cette classe pour obtenir le numéro de téléphone d’un contact sélectionné par l’utilisateur. |
|
Autorise une application à lancer l’application Photo Chooser. Utilisez cette classe pour permettre aux utilisateurs de sélectionner une photo. |
|
Autorise une application à lancer l’application Contacts. Utilisez cette classe pour permettre aux utilisateurs de sauvegarder une adresse email à partir de votre application pour un contact nouveau ou existant. |
|
Autorise une application à lancer l’application Contacts. Utilisez cette classe pour autoriser les utilisateurs à sauvegarder un numéro de téléphone à partir de votre application pour un contact nouveau ou existant. |
L'exemple suivant montre comment utiliser le Chooser PhoneNumberChooserTask pour choisir un numéro de téléphone de l'un de ses contacts. Une interface utilisateur de base est créée et possède un Button pour appeler le Chooser et d’un TextBlock pour afficher le résultat.
XAML
Code Snippet
- <!--ContentPanel - place additional content here-->
- <StackPanel>
- <Button Name="ButtonChooser"
- Height="150" Width="275"
- Content="Get Phone Number"
- Click="ButtonChooser_Click"/>
- <TextBlock Name="txtPhoneNumber"
- Margin="10"
- FontSize="28"
- Text="Phone Number: " />
- </StackPanel>
L’image suivante montre un exemple d’application fonctionnant dans l’émulateur Windows Phone.
Une instance globale de la classe PhoneNumberChooserTask est définie. Dans le constructeur de la classe public, le PhoneNumberChooserTask est instancié. Un gestionnaire d'événement nommé numberChooser_Completed est créé pour gérer l'événement Completed. Enfin, la méthode Show est appelée pour démarrer l'application.
Dans le gestionnaire d'événement Completed, la propriété TaskResult sur PhoneNumberResult est vérifiée. Si le TaskResult est OK, la propriété Text sur le TextBlock est définie à la valeur de la propriété PhoneNumber de l'objet PhoneNumberResult.
C#
Code Snippet
- public partial class MainPage : PhoneApplicationPage
- {
- PhoneNumberChooserTask numberChooser;
- // Constructor
- public MainPage()
- {
- InitializeComponent();
- numberChooser = new PhoneNumberChooserTask();
- numberChooser.Completed += new EventHandler<PhoneNumberResult>(numberChooser_Completed);
- }
- void numberChooser_Completed(object sender, PhoneNumberResult e)
- {
- // Check if TaskResult is a success
- if (e.TaskResult == TaskResult.OK)
- {
- // Display the phone number in the TextBlock txtPhoneNumber
- txtPhoneNumber.Text += e.PhoneNumber;
- }
- }
- private void ButtonChooser_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- // Start the Chooser.
- numberChooser.Show();
- }
- catch (System.InvalidOperationException ex)
- {
- // Catch the exception, but no handling is necessary.
- }
- }
- }
Visual Basic
Code Snippet
- Partial Public Class MainPage
- Inherits PhoneApplicationPage
- Private numberChooser As PhoneNumberChooserTask
- ' Constructor
- Public Sub New()
- InitializeComponent()
- numberChooser = New PhoneNumberChooserTask()
- numberChooser.Completed += New EventHandler(Of PhoneNumberResult)(AddressOf numberChooser_Completed)
- End Sub
- Private Sub numberChooser_Completed(sender As Object, e As PhoneNumberResult)
- ' Check if TaskResult is a success
- If e.TaskResult = TaskResult.OK Then
- ' Display the phone number in the TextBlock txtPhoneNumber
- txtPhoneNumber.Text += e.PhoneNumber
- End If
- End Sub
- Private Sub ButtonChooser_Click(sender As Object, e As RoutedEventArgs)
- Try
- ' Start the Chooser.
- numberChooser.Show()
- ' Catch the exception, but no handling is necessary.
- Catch ex As System.InvalidOperationException
- End Try
- End Sub
- End Class
L’image suivante montre le Chooser PhoneNumber en exécution dans l’émulateur Windows Phone.
Après que l'utilisateur ait sélectionné le contact pour obtenir le numéro de téléphone, le numéro est affiché. Les images suivantes montrent l'application après qu’un contact soit sélectionné.
Voir aussi