Expérience/interface utilisateur

Les fenêtres redimensionnables donnent aux utilisateurs davantage de contrôle sur leur manière d’utiliser votre application. Grâce à de nouvelles fonctionnalités, vous pouvez mieux exploiter la vignette de votre application. De plus, la recherche, le partage et les icônes ont été mis à jour pour offrir aux utilisateurs une expérience globale plus cohérente.

Nouveautés ou mises à jour dans Windows 8.1

  • Fenêtres redimensionnables
  • Mises à jour des vignettes
  • Mises à jour de la recherche
  • Mises à jour du partage
  • Icônes opérationnelles sur chaque écran
  • Intégration des données d’utilisateur et d’événements
  • Synthèse vocale
  • Mises à jour de la gestion des tâches en arrière-plan
  • Prise en charge de l’application d’alarme dans l’écran de verrouillage
  • Mises à jour de la planification des éléments de travail

Fenêtres redimensionnables

[Obtenir les exemples Vues de l’application, Vues multiples et Gestionnaire de projection maintenant.]

Windows 8.1 comporte quelques nouveautés en ce qui concerne la taille et la position des fenêtres. Quand vous développez des applications pour Windows 8.1, gardez les points suivants à l’esprit :

  • Dans Windows 8.1, il n’existe pas d’état d’affichage de largeur fixe. Les utilisateurs peuvent dorénavant redimensionner progressivement les applications à une échelle inférieure jusqu’à une largeur minimale. (La largeur minimale par défaut d’une application est de 500 pixels.) Les applications ne peuvent donc plus présenter l’état d’affichage Fill ou Snapped. À la place, développez votre application de manière à ce qu’elle reste fonctionnelle et conviviale quelle que soit sa taille, même minimale.

    Remarque  Dans Windows 8, l’affichage Snapped avait une largeur de 320 pixels, soit une largeur inférieure à la largeur minimale par défaut actuelle (500 pixels).

  • Si votre application fonctionne bien à plus petite échelle, vous pouvez ramener la largeur minimale à 320 pixels afin d’inciter les utilisateurs à conserver votre application à l’écran.

  • Les utilisateurs ont la possibilité d’afficher plus de deux applications simultanément. Votre application risque donc d’être affichée entre deux autres applications, à distance du bord gauche ou droit de l’écran.

  • Plusieurs fenêtres d’une même application peuvent être ouvertes en parallèle.

  • Une application peut lancer une autre application. Le cas échéant, les deux applications se partagent l’écran équitablement si l’espace le permet. Mais vous pouvez modifier ce partage de manière à ce que l’application lancée soit plus large ou plus étroite que l’application d’origine ou bien de sorte qu’elle remplace l’application d’origine à l’écran. Pour modifier le comportement par défaut, utilisez la propriété DesiredRemainingView.

Les applications doivent remplir la hauteur de l’écran, comme dans Windows 8. La hauteur minimale d’une application est de 768 pixels.

Largeur minimale et taille minimale par défaut d’une application (en pixels)

Recommandations en matière de conception de fenêtres redimensionnables

Quand vous concevez une application pour Windows 8.1, veillez à respecter les points suivants :

  • Vérifiez que la disposition et les contrôles de votre application peuvent être réduits à la taille minimale. En particulier, vérifiez les conséquences d’un changement de taille de l’application sur les contrôles suivants :

  • Concevez votre application de sorte qu’elle utilise l’espace sur un grand écran de manière optimale et que sa disposition s’ajuste dynamiquement. Ne laissez pas de grands espaces vides.

  • Si vous abaissez la largeur minimale à 320 pixels, prévoyez que votre application puisse s’ajuster de manière appropriée avec une largeur réduite (entre 320 et 500 pixels) :

Des exemples de disposition supplémentaires sont disponibles pour les fenêtres dont la largeur est redimensionnée à 320 pixels et celles qui sont plus hautes que larges. Pour plus d’informations sur l’utilisation d’icônes pour une application quelle que soit la taille de l’application, voir Icônes opérationnelles sur chaque écran.

Définition de la largeur minimale

Si vous souhaitez modifier la largeur minimale par défaut des applications (500 pixels), définissez l’attribut MinWidth de l’élément ApplicationView dans le manifeste d’application.

<Application>
   <VisualElements>
      <ApplicationView MinWidth=”width320” />
   </VisualElements>
</Application>

Pour plus d’informations sur le manifeste d’application, voir Manifeste du package d’application.

Mises à jour de la classe ApplicationView

Dans Windows 8.1, l’espace de noms Windows.UI.ViewManagement fournit les nouvelles énumérations suivantes :

La classe ApplicationView comporte quatre nouvelles propriétés :

ApplicationView contient également ces nouvelles méthodes :

Dans Windows 8.1, les membres suivants sont déconseillés :

  • Propriété ApplicationView.Value : non valide, car les applications n’ont plus d’état d’affichage de largeur fixe. À la place de cette propriété, utilisez la propriété Orientation pour obtenir l’orientation de la fenêtre d’application, et les propriétés AdjacentToLeftDisplayEdge, AdjacentToRightDisplayEdge et IsFullScreen pour obtenir la position de l’application.

  • Méthode ApplicationView.TryUnsnap : non valide, car les applications n’ont plus un état d’ancrage spécifique, et la largeur minimale par défaut est de 500 pixels.

  • Énumération ApplicationViewState : non valide, car les applications peuvent être redimensionnées en permanence et n’ont plus d’état d’affichage de largeur fixe.

Mises à jour des vignettes

[Obtenir les exemples Vignettes et badges d’application et Vignettes secondaires maintenant.]

Cette section décrit les différentes mises à jour que Windows 8.1 apporte aux vignettes et à leur utilisation.

Nouvelles tailles de vignettes

Windows 8 proposait ces deux tailles de vignettes :

  • Vignettes carrées (150 × 150 pixels avec un plateau de mise à l’échelle de x1)
  • Vignettes larges (310 × 150 avec un plateau de mise à l’échelle de x1)

Windows 8.1 fournit deux tailles de vignettes supplémentaires :

  • Petites vignettes (70 × 70 avec un plateau de mise à l’échelle de x1)
  • Grandes vignettes (310 × 310 avec un plateau de mise à l’échelle de x1)

Étant donné que sur ces quatre types de modèles de vignettes, trois d’entre eux sont de forme carrée, les vignettes qui étaient auparavant qualifiées de vignettes « carrées » dans Windows 8 (150 × 150 avec un plateau de mise à l’échelle de x1) sont désormais appelées vignettes « moyennes ». L’ensemble complet de vignettes comprend donc des vignettes désignées comme petites, moyennes, larges et grandes. Voici un exemple des quatre tailles disponibles.

Exemple de quatre tailles de vignettes sur l’écran d’accueil

Il est possible d’insérer quatre petites vignettes à l’emplacement d’une vignette moyenne. Les petites vignettes ne prennent pas en charge les notifications par vignette dynamique, mais elles prennent en charge les badges. Une grande vignette occupe le même espace que deux vignettes larges et, comme les tailles de vignettes Windows 8, elle prend en charge les notifications par vignette dynamique.

Nouvelles conventions d’affectation des noms de modèles de vignettes

En raison de l’ajout des nouvelles tailles de vignettes, nous avons mis à jour les conventions d’affectation de noms qui étaient utilisées dans Windows 8 pour les modèles de vignettes. Les nouvelles conventions utilisent des tailles absolues en pixels avec un plateau de mise à l’échelle de ×1. Les quatre tailles de vignettes correspondent aux nouveaux noms suivants, chaque catégorie contenant de nombreux modèles :

  • Petite = Square70x70
  • moyenne = Square150x150
  • Large = Wide310x150
  • Grande = Square310x310

Sur le même principe, l’attribut SmallLogo a été renommé en Square30x30Logo dans le manifeste d’application.

Tous les modèles de vignettes existants ont été renommés selon les nouvelles conventions d’affectation de noms.

Ancien nom Nouveau nom Exemple
TileSquare* TileSquare150x150* TileSquareImage (ancien nom) / TileSquare150x150Image (nouveau nom)
TileWidexxx TileWide310x150xxx TileWideImageAndText01 (ancien nom) / TileWide310x150ImageAndText01 (nouveau nom)

 

Bien que les anciens noms soient toujours reconnus à des fins de compatibilité, utilisez les nouveaux noms dans tous vos nouveaux développements.

Modifications liées aux vignettes dans le manifeste d’application

Vous déclarez les propriétés par défaut de votre vignette d’application principale — les tailles prises en charge, le nom d’affichage et la couleur de vignette — dans le manifeste d’application.

Activation des nouvelles tailles de vignettes

Dans Windows 8, vous activiez la prise en charge des vignettes larges en indiquant une ressource de vignette large dans le manifeste d’application. Dans Windows 8.1, vous activez la prise en charge des grandes vignettes en indiquant une ressource de grande vignette dans le manifeste.

Remarque  Votre application ne peut prendre en charge des grandes vignettes que si elle prend aussi en charge les vignettes larges.

Toutes les applications prennent en charge les vignettes moyennes (Square150x150) et les petites vignettes (Square70x70). Là aussi, vous pouvez indiquer des ressources de petite vignette dans le manifeste. Si votre application ne fournit pas d’image de petite vignette, soit en effectuant elle-même la mise à l’échelle, soit en procurant une ressource distincte, Windows 8.1 réduit automatiquement votre image de vignette moyenne.

Comme dans Windows 8, nous vous recommandons de fournir, pour chaque taille de vignette prise en charge, des ressources distinctes pour chacun des quatre plateaux d’échelle (x0.8, x1, x1.4 et x1.8). Ainsi, vos vignettes auront toujours une apparence nette et elles ne présenteront pas d’artefacts de mise à l’échelle disgracieux. Par ailleurs, pour offrir une meilleure prise en charge de l’accessibilité, vous pouvez fournir des ressources d’image pour le thème à contraste élevé.

Affichage du nom de l’application sur des vignettes de tailles différentes

Dans Windows 8, vous utilisiez le manifeste d’application pour indiquer quelles tailles de vignettes affichaient le nom de votre application. C’est toujours le cas dans Windows 8.1, sauf qu’il y a un nouveau format. Notez aussi qu’il n’est pas possible d’afficher le nom de l’application sur les petites vignettes (Square70x70).

Déclaration d’une taille d’épinglage par défaut

Dans Windows 8, toute application qui prenait en charge la taille de vignette large était épinglée à l’écran d’accueil en tant que vignette large ; sinon, elle était épinglée en tant que vignette moyenne. Dans Windows 8.1, vous avez l’option de remplacer ce comportement en déclarant la vignette moyenne ou large en tant que taille d’épinglage par défaut (cela n’est pas possible pour les petites et grandes vignettes). N’oubliez pas toutefois que, dans Windows 8.1, votre application n’est pas automatiquement épinglée à l’écran d’accueil durant son installation. L’application, qui figure dans l’affichage Toutes les applications, doit être explicitement sélectionnée et épinglée à l’écran d’accueil par l’utilisateur.

Modifications apportées au schéma du manifeste d’application

Désormais, vous indiquez un espace de noms supplémentaire, "https://schemas.microsoft.com/appx/2013/manifest", dans votre manifeste, pour inclure les éléments de schéma qui déclarent la nouvelle fonctionnalité dont nous avons parlé. L’exemple suivant montre quelques-uns des attributs de manifeste qui ont été ajoutés ou renommés. Notez la présence de la ressource de grande vignette sous l’élément DefaultTile, qui sert également à déclarer explicitement une taille par défaut. L’application est également configurée de manière à ce que son nom ne s’affiche que sur les vignettes moyennes et larges, et pas sur les grandes vignettes.

<Package 
    xmlns="https://schemas.microsoft.com/appx/2010/manifest" 
    xmlns:wb="https://schemas.microsoft.com/appx/2013/manifest">
    
...

<wb:VisualElements 
    DisplayName="Your app name" 
    Description="App description" 
    BackgroundColor="#464646" 
    ForegroundText="light" 
    ToastCapable="true" 
    Square150x150Logo="Assets\Medium150x150Tile.png" 
    Square30x30Logo="Assets\APVLogo.png">
    
    <wb:DefaultTile 
        Square70x70Logo="Assets\Small70x70Tile.png" 
        Wide310x150Logo="Assets\Wide310x150Tile.png" 
        Square310x310Logo="Assets\Large310x310Tile.png" 
        ShortName="App" 
        DefaultSize="square150x150Logo">
        
        <wb:ShowNameOnTiles>
            <wb:ShowOn Tile="square150x150Logo"/>
            <wb:ShowOn Tile="wide310x150Logo"/> 
        </wb:ShowNameOnTiles>
    </wb:DefaultTile>
    
    <wb:LockScreen 
        Notification="badgeAndTileText" 
        BadgeLogo="Assets\badge.png"/>
    
    <wb:SplashScreen Image="Assets\SplashScreen.png"/>
</wb:VisualElements>

Modifications apportées aux notifications par vignette

Quand vous envoyez une notification par vignette, n’oubliez pas qu’elle peut être reçue par votre application aussi bien sous Windows 8.1 que sous Windows 8. Comme les nouveaux noms attribués aux modèles existants ne sont reconnus que par Windows 8.1, le schéma propose le nouvel attribut fallback. Grâce à l’ajout de cet attribut fallback, la charge utile de notification peut indiquer à la fois un modèle Windows 8.1 et un modèle Windows 8, ce qui permet de gérer toute notification reçue sur un système Windows 8. Pour utiliser les nouveaux noms de modèles et l’attribut fallback, ajoutez le nouvel attribut version avec la valeur 2 dans l’élément visual, comme dans l’exemple ci-dessous.

<tile>
  <visual version="2">
    <binding template="TileSquare150x150Image" fallback="TileSquareImage" branding="None">
      <image id="1" src="Assets/Images/w6.png"/>
    </binding>
    <binding template="TileWide310x150Image" fallback="TileWideImage" branding="None">
      <image id="1" src="Assets/Images/sq5.png"/>
    </binding>
    <binding template="TileSquare310x310Image" branding="None">
      <image id="1" src="Assets/Images/sq6.png"/>
    </binding>
  </visual>
</tile>

Notez que vous ne pouvez pas utiliser l’attribut fallback avec les grandes vignettes, car ces dernières n’existaient pas dans Windows 8. Hormis pour cette taille de vignette, les notifications Windows 8 fonctionnent sans problème dans Windows 8.1.

Remarque  Si vous incluez un modèle de grande vignette (Square310x310) dans votre charge utile, ce modèle doit être le dernier dans la liste des liaisons. En effet, le système Windows 8 arrêtera l’analyse d’une notification s’il rencontre une liaison qu’il n’arrive pas à identifier à l’aide du nom de modèle ou de substitution. Il s’arrêtera donc dès qu’il rencontrera une liaison 310 × 310.

Définition des tailles de vignettes pour la file d’attente de notifications

Dans Windows 8, quand vous activiez la file d’attente de notifications, elle était activée pour les vignettes de taille moyenne et larges. Windows 8.1 fournit des méthodes supplémentaires pour la classe TileUpdater qui vous permettent d’activer la file d’attente de notifications pour des tailles de vignettes spécifiques.

Nouvelles tailles de vignettes et logos de substitution dans les vignettes secondaires

Windows 8.1 affiche un menu volant quand un utilisateur épingle du contenu en tant que vignette secondaire. Ce menu volant permet à l’utilisateur de parcourir la liste des tailles et apparences disponibles pour la vignette secondaire, puis de sélectionner la taille et l’apparence de son choix. La vignette secondaire prend en charge toutes les tailles de vignette qui sont prises en charge par la vignette d’application principale associée. Si vous n’indiquez pas d’image de petite vignette pour la vignette secondaire, Windows 8.1 réduit l’image de vignette carrée afin de pouvoir ensuite l’utiliser.

En plus de l’image de vignette secondaire par défaut, vous pouvez fournir jusqu’à trois versions de substitution pour chaque taille de vignette (dans la limite de 12 versions au total). Vous pouvez également spécifier, à l’aide de la méthode AlternateVisualElements, un logo de substitution pour chacune des trois tailles de vignette (carrée, large, grande) qui prennent en charge les logos.

Amélioration de la prise en charge de la chaîne phonétique pour le tri des vignettes secondaires

Dans certaines langues basées sur des caractères, telles que le japonais, l’ordre de tri appliqué dans l’interface utilisateur est déterminé par l’orthographe phonétique des caractères composant le nom d’affichage de l’application. Cette orthographe phonétique constitue une chaîne distincte du nom d’affichage. Lorsqu’un utilisateur épingle une vignette secondaire, il peut indiquer un nom d’affichage pour cette vignette dans le menu volant d’épinglage, mais pas l’orthographe phonétique correspondante. Windows essaie de deviner la chaîne phonétique, mais il n’y parvient pas toujours correctement.

Toutefois, les applications sont parfois en mesure d’identifier la chaîne phonétique exacte. C’est le cas si l’utilisateur a défini cette chaîne à l’aide d’un contrôle personnalisé fourni par l’application. Dans Windows 8.1, l’application peut ensuite transmettre cette chaîne à Windows via la nouvelle propriété SecondaryTile.PhoneticName. Notez que cette chaîne phonétique est liée au nom d’affichage par défaut qui est associé à la vignette secondaire. Par conséquent, si l’utilisateur modifie le nom d’affichage à l’aide du menu volant d’épinglage, l’orthographe phonétique devinée par le système sera utilisée à la place.

Mises à jour de la recherche

[Obtenir l’exemple de contrôle SearchBox maintenant.]

Windows 8.1 fournit deux nouveaux contrôles zone de recherche qui facilitent l’affichage des résultats de recherche : il s’agit du contrôle Windows.UI.Xaml.Controls.SearchBox pour les applications en XAML et du contrôle WinJS.UI.SearchBox pour les applications en JavaScript.

Vous pouvez maintenant inclure la zone de recherche en tant qu’élément dans le balisage de vos applications. Ce nouveau contrôle prend en charge toutes les fonctionnalités liées aux modèles et au style.

Dans Windows 8.1, l’expérience de recherche est entièrement contrôlée par vos applications. La zone de recherche est intégrée au contrat de recherche afin d’améliorer l’expérience de recherche et de permettre une personnalisation avancée. Vos applications pourront ainsi offrir aux utilisateurs des expériences de recherche au plus près de leurs besoins.

La zone de recherche prend en charge les suggestions et résultats de recherche fournis par l’application, l’historique de recherche propre à l’application, ainsi que toutes les interactions tactiles et interactions à l’aide de la souris ou du clavier.

La zone de recherche se présente comme suit :

Contrôle zone de recherche dans les applications du Windows Store

Voici un exemple de résultats de recherche tels qu’ils s’affichent dans le contrôle zone de recherche :

Exemple de résultats de recherche pour « MSFT »

Le contrôle zone de recherche prend en charge l’intégration à l’éditeur de méthode d’entrée (IME).

Contrôle zone de recherche dans l’application avec IME

Avec l’éditeur de méthode d’entrée, les suggestions sont actualisées au fur et à mesure que l’utilisateur saisit des caractères. Les résultats de recherche incluent les idéogrammes chinois qui sont suggérés sur la base de la valeur phonétique des premiers caractères saisis. L’interface utilisateur candidate de l’éditeur de méthode d’entrée ne masque pas le menu volant de suggestions de recherche. La zone de recherche vous permet d’utiliser le clavier pour naviguer entre la zone de texte, la liste candidate de l’éditeur de méthode d’entrée et les suggestions de recherche.

Mises à jour du partage

[Obtenir les exemples Partage de source de contenu et Partage de cible de contenu maintenant.]

Windows 8.1 fait évoluer l’expérience du partage et la façon dont vous utilisez le contrat de partage dans vos applications.

Ajout de nouveaux formats de données à l’objet DataPackage

Dans Windows 8.1, les applications sources activées pour le contrat de partage proposent à l’utilisateur plusieurs moyens de revenir au contenu partagé. Windows 8.1 scinde le format Uri existant en deux nouveaux formats de données dans l’objet DataPackage et fournit quatre nouvelles propriétés fortement typées dans l’objet DataPackagePropertySet. Pour DataPackage, le format Uri est déconseillé et remplacé par les formats WebLink et ApplicationLink.

WebLink est partagé lorsque l’utilisateur n’effectue aucune sélection. L’application source partage donc une sélection implicite du contenu affiché. En remplissant ce format, l’application source partage le contenu de la page active sous forme d’URI (Uniform Resource Identifier). Le lien partagé fait référence à la page Web actuellement consultée par l’utilisateur. Ce format commence toujours par http ou https.

ApplicationLink est également partagé lorsque l’utilisateur n’effectue aucune sélection et, là encore, l’application source partage une sélection implicite du contenu affiché. En remplissant ce format, l’application source partage le contenu de la page active sous forme d’URI. Le schéma de l’URI partagé est géré par l’application source. Lorsque celle-ci est activée avec ce protocole d’URI, elle affiche le même contenu que l’utilisateur est en train de consulter. Ce format représente le contenu partagé en fournissant un moyen de revenir au contenu à l’aide du protocole de l’application.

Les formats WebLink et ApplicationLink ne sont pas exclusifs. WebLink et ApplicationLink renvoient vers le contenu d’une page Web et vers le contenu d’une application, respectivement. Prenons l’exemple d’une application de lecture de News. Cette application peut afficher du contenu dans les deux formats, avec un URI qui renvoie l’utilisateur vers l’article initial dans l’application ou qui le redirige vers le même article sur un site Web. C’est l’application cible qui choisit de quelle façon gérer cet URI. Par exemple, l’application de messagerie utilisera probablement le format WebLink, car le lien pourra être envoyé sur Internet et utilisé à partir d’un système autre que Windows. En revanche, l’application de lecture optera pour le format ApplicationLink, qui lui permettra de réactiver l’application source et de renvoyer l’utilisateur vers le contenu initial.

ContentSourceWebLink est une propriété associée qui vous permet d’attribuer le contenu partagé. Elle est partagée lorsque l’application fournit un lien Web vers le contenu qui est actuellement partagé. Quand l’utilisateur effectue une sélection explicite, le format WebLink n’est pas rempli, car la valeur pour ce format WebLink n’est pas celle de la sélection de l’utilisateur. Lorsque ce format est rempli, cela ne signifie pas que la page Web correspond à la sélection de l’utilisateur ; cela indique simplement que le contenu provient de cet emplacement.

ContentSourceApplicationLink est la deuxième propriété associée avec laquelle vous pouvez attribuer le contenu partagé. Elle est partagée lorsque l’application choisit de renvoyer l’utilisateur vers le contenu actuellement affiché dans l’application. Quand l’utilisateur effectue une sélection, le format ApplicationLink n’est pas rempli, car la valeur pour ce format ApplicationLink n’est pas celle de la sélection de l’utilisateur. Lorsque ce format est rempli, cela ne signifie pas que le lien ciblé dans l’application représente la sélection de l’utilisateur ; cela indique simplement que le contenu provient de cet emplacement.

Imaginons qu’un utilisateur lise un article dans une application Lecteur. L’utilisateur sélectionne une citation et la partage dans OneNote. Pour attribuer la citation à l’article, l’application Lecteur n’utilise pas le format WebLink ou ApplicationLink, car l’article ne correspond pas à la citation partagée. À la place, l’application utilise les propriétés ContentSourceWebLink et ContentSourceApplicationLink. OneNote ajoute le texte sélectionné avec l’attribution de la source. Ainsi, dans OneNote, l’utilisateur pourra ultérieurement relire la citation et revenir à l’application Lecteur ou à la page Web pour lire le contenu sous-jacent à la citation.

Amélioration de la réactivité du partage

Dans Windows 8.1, vos applications activées pour le contrat de partage peuvent améliorer leur réactivité en fermant par programme le volet Partager.

Appelez la nouvelle méthode DismissUI pour fermer le volet Partager. L’appel de la méthode DismissUI produit le même effet que lorsque l’utilisateur ferme le volet Partager en appuyant à l’extérieur du volet. Si l’opération de partage prend beaucoup de temps, l’application continue de s’exécuter normalement. Si l’opération est rapide, un délai d’exécution de 10 secondes est prévu avant l’arrêt.

L’application cible ne peut pas être automatiquement masquée à l’écran. Par conséquent, au démarrage d’une opération de partage, l’application affiche généralement un indicateur de progression et fait patienter l’utilisateur jusqu’à la fin de l’opération (et ce même si plus aucune interaction utilisateur n’est nécessaire pour terminer l’opération). Les utilisateurs peuvent en toute sécurité fermer le menu volant par un appui léger. Pourtant, peu d’entre eux procèdent de la sorte, car ils pensent que fermer le volet avant la fin de l’opération de partage risque de leur faire perdre des données. Utilisez la méthode DismissUI afin que votre application ferme automatiquement le menu volant.

Nom de famille du package

Dans Windows 8.1, les applications sources activées pour le contrat de partage peuvent fournir un nom de famille de package aux applications cibles. Ces dernières sont ainsi en mesure d’offrir une expérience de substitution au démarrage de l’application spécifiée par ApplicationLink.

Le nom de famille du package constitue l’identificateur unique du package de l’application. Lorsqu’une application source transmet cet identificateur à l’application cible, celle-ci peut offrir une expérience de substitution en appelant la méthode LaunchUriAsync avec le format ApplicationLink. Si le schéma de l’URI n’est pas pris en charge (parce que l’utilisateur a désinstallé l’application ou que l’URI a été déplacé vers un autre périphérique ne comportant pas cette application, par exemple), une boîte de dialogue s’affiche pour demander à l’utilisateur de rechercher une application sur le Windows Store. L’utilisateur est alors redirigé vers la page du Windows Store par défaut, au lieu de la page de l’application requise. Si vous ajoutez le nom de famille du package dans l’objet LauncherOptions transmis à LaunchUriAsync, l’utilisateur est invité à installer l’application requise, puis il est redirigé vers la page de description de cette application sur le Windows Store.

Format URI déconseillé

Comme nous l’avons mentionné précédemment, Windows 8.1 scinde le format Uri existant en deux nouveaux formats de données dans l’objet DataPackage et fournit quatre nouvelles propriétés fortement typées dans l’objet DataPackagePropertySet. Pour DataPackage, le format Uri est déconseillé et remplacé par les formats WebLink et ApplicationLink. Le format Uri peut toujours être utilisé en tant qu’alias du format WebLink.

Icônes opérationnelles sur chaque écran

Dans Windows 8, quand plusieurs applications étaient affichées à l’écran et que l’utilisateur appelait des icônes, le système affichait les icônes des applications qui occupaient le plus d’espace à l’écran. Dans Windows 8.1, le système affiche les icônes de la dernière application utilisée par l’utilisateur, quel que soit le nombre d’applications à l’écran ou le nombre d’écrans. Par exemple, si l’utilisateur sélectionne l’icône Paramètres, le système affiche le menu volant Paramètres pour la dernière application utilisée.

Concevez votre application pour qu’elle fonctionne avec les icônes quelle que soit la taille de l’application. En particulier, la largeur du menu volant Paramètres doit être inférieure ou égale à la largeur actuelle de votre application.

Création d’applications qui intègrent les utilisateurs et les événements

[Obtenir les exemples d’API de gestionnaire de contacts, d’API de rendez-vous et de gestion des actions des contacts maintenant.]

Avec Windows 8.1, laissez entrer les utilisateurs et les événements dans votre application. Permettez aux utilisateurs de votre application de rechercher des informations sur d’autres personnes qu’ils connaissent, et retenez-les en leur proposant des moyens de communication totalement intégrés (messagerie instantanée ou électronique, appels classiques ou vidéo, etc.). Vous retiendrez également les utilisateurs dans votre application en leur permettant de consulter rapidement leurs disponibilités et d’ajouter des événements dans leur calendrier favori.

Intégrez ces nouvelles API à votre application pour permettre aux utilisateurs d’afficher les cartes de visite de leurs connaissances et de gérer leurs événements directement à partir de l’application :

  • ShowContactCard méthode

    Permet à l’application d’interroger le système d’exploitation pour obtenir les coordonnées d’un utilisateur, puis de les afficher sous forme de carte de visite.

  • AppointmentsProvider espace de noms

    Prend en charge les demandes d’ajout, de remplacement et de suppression de rendez-vous par le biais d’activations avec lesquelles un fournisseur de rendez-vous interagit.

  • AppointmentManager classe

    Permet à l’application d’interagir avec le fournisseur de rendez-vous de l’utilisateur pour ajouter, remplacer et supprimer des événements. Affiche également l’interface utilisateur principale pour le fournisseur de rendez-vous.

  • Activation espace de noms

    Permet à l’application de gérer les paramètres d’activation du nouveau fournisseur de rendez-vous et des nouveaux contrats de contact pris en charge par Windows.

Synthèse vocale

[Obtenir l’exemple Synthèse vocale maintenant.]

Windows 8.1 présente la nouvelle API Windows.Media.SpeechSynthesis, qui prend en charge la synthèse vocale (également connue sous le nom de conversion de texte par synthèse vocale ou TTS) dans les applications du Windows Store.

Utilisez la synthèse vocale pour inviter l’utilisateur à saisir du texte, mettre en évidence des notifications et boîtes de message dans les applications, afficher des instructions (par exemple, pour la navigation instruction par instruction) ou encore lire divers contenus tels que les messages texte ou électroniques, flux RSS, livres et résultats de recherche.

Windows 8.1 intègre un ensemble de moteurs de synthèse vocale appelés voix. Chaque voix est associée à un nom convivial, tel que Microsoft David (anglais américain, homme), Microsoft Zira (anglais américain, femme) et Microsoft Hazel (anglais britannique, femme). Ce nom peut être indiqué dans votre application ou sélectionné par l’utilisateur dans le Panneau de configuration Langue.

Grâce aux fonctionnalités de synthèse vocale prises en charge par Windows 8.1, vous pouvez :

  • configurer le synthétiseur vocal avec le genre, la voix et la langue de votre choix ;

  • générer la restitution vocale à partir d’une chaîne de texte brut, sur la base des caractéristiques et propriétés par défaut de la voix actuelle ;

  • générer la restitution vocale à partir d’une chaîne contenant des éléments SSML (Speech Synthesis Markup Language), afin de personnaliser les caractéristiques de la voix, la prononciation, le volume, la tonalité, le débit ou la vitesse, l’accentuation, etc. ;

  • lire et écrire les données audio générées par le moteur de synthèse vocale à partir et vers un flux à accès aléatoire.

Génération de la restitution vocale à partir d’un texte brut

Cet exemple montre de quelle façon une application du Windows Store utilise un objet SpeechSynthesizer pour créer un flux audio, puis générer la restitution vocale à partir d’une chaîne de texte brut.

// The object for controlling and playing audio.
var audio = new Audio();

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
synth.synthesizeTextToStreamAsync("hello World").then(function (markersStream) {

    // Convert the stream to a URL Blob.
    var blob = MSApp.createBlobFromRandomAccessStream(markersStream.ContentType, markersStream);

    // Send the Blob to the audio object.
    audio.src = URL.createObjectURL(blob, { oneTimeOnly: true });
    audio.play();
});
// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World");

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();

Génération de la restitution vocale à partir d’un texte SSML (Speech Synthesis Markup Language)

L’exemple ci-dessous montre de quelle façon une application du Windows Store utilise un objet SpeechSynthesizer pour créer un flux audio, puis générer la restitution vocale à partir d’une chaîne de texte SSML.

// The string to speak with SSML customizations.
var Ssml = "<speak version='1.0' " +
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" +
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody> " + 
    "<break time='500ms' />" +
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>" +
    "</speak>";

// The object for controlling and playing audio.
var audio = new Audio();

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from SSML.
synth.synthesizeSsmlToStreamAsync(Ssml).then(function(synthesisStream){

    // Convert the stream to a URL Blob.
    var blob = MSApp.createBlobFromRandomAccessStream(synthesisStream.ContentType, synthesisStream);

    // Send the Blob to the audio object.
    audio.src = URL.createObjectURL(blob, { oneTimeOnly: true });
    audio.play();
});
// The string to speak with SSML customizations.
string Ssml =
    @"<speak version='1.0' " +
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" +
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody> " + 
    "<break time='500ms' />" +
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>" +
    "</speak>";

// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from SSML.
SpeechSynthesisStream stream = await synth.synthesizeSsmlToStreamAsync(Ssml);

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();

Mises à jour de la gestion des tâches en arrière-plan

[Obtenir l’exemple Tâche en arrière-plan maintenant.]

Windows 8.1 inclut plusieurs nouvelles fonctionnalités pour les tâches en arrière-plan :

Heures de tranquillité et tâches en arrière-plan

Les heures de tranquillité constituent une nouvelle fonctionnalité dans Windows 8.1 qui permet à l’utilisateur de désigner des heures spécifiques dans la journée auxquelles il ne souhaite pas être dérangé par des notifications. Cette fonctionnalité arrête également la plupart des activités en arrière-plan associées aux applications du Windows Store, ce qui permet de ne pas déranger l’utilisateur et de prolonger éventuellement la durée de veille connectée du périphérique.

Quand le système passe en heures de tranquillité, les tâches en arrière-plan sont mises en file d’attente et en suspens pendant toute leur durée. Les tâches en arrière-plan qui sont en cours d’exécution sont annulées quand le système passe en heures de tranquillité.

À la fin des heures de tranquillité, les tâches en arrière-plan sont autorisées à redémarrer. Chaque tâche en arrière-plan redémarre selon un intervalle aléatoire avant que le système ne quitte les heures de tranquillité. Cela permet de garantir que les tâches en arrière-plan ne s’éveillent pas toutes en même temps, ce qui surchargerait inutilement les ressources du système et celles des serveurs distants. Le système ne déclenche pas de notifications avant l’heure de fin désignée des heures de tranquillité.

Par défaut, il existe deux exceptions autorisées pendant les heures de tranquillité : les appels téléphoniques entrants provenant d’une application qui prend en charge la nouvelle fonctionnalité d’appel d’écran de verrouillage et les alarmes définies par l’utilisateur dans l’application d’alarme désignée par défaut. Si l’application est compatible avec les appels d’écran de verrouillage et que le paramètre IncomingCall a la valeur TRUE, la tâche en arrière-plan s’exécute et la notification est remise. Les notifications issues des alarmes définies par l’utilisateur dans l’application d’alarme désignée par défaut sont remises pendant les heures de tranquillité.

Les heures de tranquillité sont activées par défaut de minuit à 6 h 00 et elles autorisent les appels entrants. Les utilisateurs peuvent modifier ces paramètres ou désactiver les heures de tranquillité sous l’onglet des notifications dans la section des applications de Modifier les paramètres du PC. Les heures de tranquillité sont disponibles sur tous les systèmes.

Annulation des tâches inactives

En plus des contraintes exercées sur les ressources par les tâches en arrière-plan, l’infrastructure des tâches en arrière-plan de Windows détecte celles qui sont inactives ou bloquées. Une tâche en arrière-plan est considérée comme inactive ou bloquée si elle n’a pas utilisée son quota minimal de ressources processeur ou réseau dans un délai imparti minimal (qui varie selon l’état du système). Si une tâche en arrière-plan inactive ou bloquée est détectée, elle reçoit une notification d’annulation qui lui permet d’être arrêtée, puis fermée. Si la tâche en arrière-plan ne s’arrête pas et ne se ferme pas au bout de 5 secondes, le système considère que l’application ne répond pas et y met fin.

Dans Windows 8.1, évitez que votre application soit arrêtée à cause d’une tâche en arrière-plan inactive ou bloquée : associez toujours un gestionnaire d’annulation afin qu’elle soit proprement annulée. Pour obtenir des détails et des extraits de code, voir Comment gérer les tâches en arrière-plan inactives ou bloquées.

Indication du coût du travail pour une tâche en arrière-plan

Windows 8.1 fournit une indication aux tâches en arrière-plan relative à la disponibilité des ressources. Quand une tâche en arrière-plan est activée, elle peut utiliser cette indication pour déterminer la quantité de travail à effectuer. Il est possible de signaler trois états des ressources en arrière-plan : faible, moyen et élevé. Pour en savoir plus, voir BackgroundWorkCost et BackgroundWorkCostValue.

Applets de commande PowerShell associées aux tâches en arrière-plan

Les développeurs peuvent utiliser les nouvelles commandes PowerShell AppBackgroundTask et le nouveau module de conception de l’applet de commande BackgroundTasksManager pour récupérer des informations sur les tâches en arrière-plan en cours d’exécution. Ces informations peuvent s’avérer très utiles dans le cadre de l’implémentation et du débogage des tâches en arrière-plan. Pour plus d’informations, voir Applets de commande PowerShell associées aux tâches en arrière-plan.

Prise en charge de l’application d’alarme dans l’écran de verrouillage

[Obtenir l’exemple Notifications d’alarme maintenant.]

Dans Windows 8.1, l’un des emplacements de l’écran de verrouillage est utilisé pour les applications d’alarme. Les applications d’alarme utilisent la classe AlarmApplicationManager pour demander l’autorisation à l’utilisateur de devenir l’application d’alarme système. Si l’utilisateur accorde cette autorisation (ou si l’utilisateur place l’application dans cet emplacement d’alarme en utilisant le panneau de configuration) l’application prend cet emplacement et devient l’application d’alarme système. Les notifications d’alarme déclenchées par l’application d’alarme système sont affichées à l’utilisateur avec une précision d’une seconde. Seule l’application dans l’emplacement d’alarme peut déclencher des notifications d’alarme ; les notifications d’alarme déclenchées par d’autres applications sont traitées comme des notifications normales.

Vous planifiez des notifications d’alarme en créant des notifications toast avec l’élément commands. Vous utilisez l’élément audio pour spécifier le son de l’alarme qui est joué quand la notification est déclenchée même si le système est muet.

Mises à jour de la planification des éléments de travail

L’API CoreDispatcher (Windows::UI::Core:CoreDispatcher) vous permet de mieux contrôler les priorités appliquées dans le cadre de la planification des éléments de travail.

Dans Windows 8.1, les priorités de répartition des éléments de travail sont désormais appliquées dans l’ordre suivant :

  1. SendMessage (priorité la plus haute)
  2. CoreDispatcherPriority.High
  3. CoreDispatcherPriority.Normal (comprend les messages de fenêtre et les appels COM)
  4. Tous les messages d’entrée de périphérique
  5. CoreDispatcherPriority.Low
  6. CoreDispatcherPriority.Idle (priorité la plus basse, utilisée pour les tâches en arrière-plan)

Pour modifier les priorités des tâches, définissez ces nouveaux membres sur le type CoreDispatcher :

  • Méthode CoreDispatcher::ShouldYield (deux surcharges)—Demande si l’appelant doit abandonner quand la file d’attente des tâches contient des éléments avec la priorité définie ou une priorité supérieure.

  • Priorité CoreDispatcher::CurrentPriority— Obtient ou définit la priorité de tâche actuelle ayant été appliquée en dernier par CoreDispatcher. Lorsqu’une application exécute un travail avec une priorité donnée et qu’elle reçoit un autre travail avec une priorité supérieure, cette propriété peut être définie de manière à élever la priorité de la tâche en cours. Cela permet à ShouldYield de fournir des résultats plus précis.