Étape 13 : Création de votre Windows Phone App partie 4: codage Cortana - logique
Logique de Cortana
Maintenant que Cortana peut entendre vous, nous avons besoin d’elle pour comprendre vous. Cette partie du guide va dans le « backend » Cortana et de son associé à la logique de notre application. Nous voulons lui programmer afin que quand elle entend une de ces commandes, elle envoie un message à notre Service de Bus Azur et allume ou éteint les lumières.
Installer les commandes vocales
N’oubliez pas ! Il s’agit d’un problème que beaucoup de gens ont tout d’abord avec Cortana, simplement parce qu’il est facilement oubliée. Nous allons faire tout de suite pour s’assurer que c’est fait et plus atteints.
Placez le code suivant dans votre document MainPage.xaml.cs .
Tout d’abord, importez les appels renvoi en haut de votre fichier :
Puis le code pour installer notre voix commandes peuvent être écrite comme une fonction comme suit :
Pas familier avec Async et Await? Renseignez-vous sur les documents MSDN ici.
Maintenant que nous avons notre fonction, assurons-nous que de l’appeler ! Un bon endroit pour le mettre se trouve la fonction OnNavigatedTo .
Parce que notre installation est une tâche asynchrone, nous allons devoir faire de la fonction OnNavigateTo une fonction asynchrone en simple ajoutant le code suivant :
Ensuite nous vérifions simplement que c’est la première fois que la page a navigué et installer nos commandes vocales :
Formidable ! Maintenant nos commandes vocales installera dès aussi ouvert l’app pour la première fois !
Logique de commande vocale
Maintenant, nous allons utiliser ce que commande le parle de l’utilisateur de comprendre quelle commande à envoyer à notre Service de Bus Azur. Ouvrez votre fichier App.xaml.cs et faire défiler les options juste en dessous de la fonction RootFrame_FirstNavigated . Là-dessous, nous mettrons la fonction suivante :
Cette fonction est appelée chaque fois que quelqu'un utilise notre commande préfixe (BACH) pour donner une instruction de Cortana. Bien que cela puisse paraître un peu déroutant au début, la partie vraiment importante sont les lignes de code suivantes :
Nous utilisons une instruction switch pour parcourir les différentes commandes dans notre document SSML. Ce que nous vérifions porte sur la chaîne correspondre au nom de notre commande de nos blocs de commande dans le doc de ssml. Une fois que nous savons ce que nous avons reçu la commande, nous pouvons alors agir en conséquence en tirer notre SendSBMessage qui envoie un message à notre Service de Bus Azur. Pour « Off », nous envoyons un "0"et « On » nous envoyons un 1'.
Code ne fonctionne pas à 100 % ? Ne vous inquiétez pas, j’ai joint un fichier MainPage.xaml.cs et App.xaml.cs qui devrait vous donner plus de clarté si vous suivez le long.
MainPage.xaml.cs App.Xaml.cs