Intégration de votre service cloud aux contrats du sélecteur de fichiers

Jusqu'à tout récemment, les utilisateurs organisaient, partageaient et stockaient leurs documents, leurs photos, leurs vidéos et leur musique localement, sur leur PC. Désormais, de plus en plus d'utilisateurs profitent du cloud pour accéder de façon bien plus pratique à leurs fichiers importants, les lire et les gérer. Windows 8 accompagne ces nouveaux usages en vous permettant d'intégrer de façon très étroite les services cloud à vos applications, afin de proposer des expériences utilisateurs jusque-là inenvisageables.

Bon nombre de ces usages sont mis en évidence dans l'application SkyDrive, qui exploite les contrats du sélecteur de fichiers. Ceux-ci sont conçus pour permettre à toutes les applications Windows 8 d'accéder aux documents, photos, vidéos et musiques de l'utilisateur stockés dans votre application. Dans ce billet, nous utilisons l'application SkyDrive (qui met en œuvre les trois contrats du sélecteur de fichiers, présentés dans le billet Connexion de vos applications, fichiers, PC et périphériques au cloud avec SkyDrive et Windows 8) pour répondre à plusieurs objectifs :

  • Vous expliquer en quoi consistent les contrats du sélecteur de fichiers et comment vous pouvez les utiliser pour mettre en place de nouvelles expériences utilisateur au sein de votre application.
  • Vous expliquer comment choisir le ou les contrats du sélecteur de fichiers adaptés à votre application.
  • Vous fournir des conseils et des astuces pour la mise en œuvre des contrats du sélecteur de fichiers.

Prise en charge du sélecteur d'ouverture de fichier dans l'application SkyDrive

Prise en charge du sélecteur d'ouverture de fichier dans l'application SkyDrive

Présentation des contrats du sélecteur de fichiers

Comme leur nom l'indique, les contrats du sélecteur de fichiers étendent le sélecteur de fichiers en permettant aux applications Windows 8 de fournir des fichiers, des emplacements d'enregistrement et même des mises à jour de fichiers aux autres applications Windows 8. Par exemple, sur la capture d'écran que nous venons d'examiner, vous pouvez constater que tous mes fichiers stockés sur SkyDrive sont accessibles directement dans le sélecteur de fichiers.

Il existe trois contrats Sélecteur de fichiers : Sélecteur d'ouverture de fichier, Sélecteur d'enregistrement de fichier et Mise à jour des fichiers mis en cache. Vous devez uniquement mettre en œuvre les contrats pertinents pour votre application. Pour déterminer les contrats à mettre en œuvre, utilisez les informations suivantes à titre de guide :

  • Sélecteur d'ouverture de fichier : utilisez ce contrat lorsque votre application permet d'afficher de façon spécifique et/ou utile des fichiers qui ne sont pas facilement accessibles par d'autres moyens. Par exemple, l'application SkyDrive met en œuvre ce contrat afin de permettre à toutes les applications Windows 8 d'accéder aux fichiers stockés sur ce service.
  • Sélecteur d'enregistrement de fichier : Si votre application prend en charge le contrat Sélecteur d'ouverture de fichier, utilisez ce contrat lorsque les utilisateurs s'attendent également à pouvoir enregistrer des fichiers en utilisant votre application comme emplacement. Par exemple, l'application SkyDrive met en œuvre ce contrat pour permettre aux utilisateurs d'enregistrer facilement des fichiers dans ce service à partir de n'importe quelle application Windows 8. Pour certaines applications, vous devez choisir de mettre en œuvre le contrat Sélecteur d'enregistrement de fichier, le contrat de partage cible ou ces deux contrats simultanément, afin de déplacer des données vers votre application. La rubrique Partage et échange de données vous aidera à prendre les bonnes décisions en la matière.
  • Mise à jour des fichiers mis en cache : Utilisez ce contrat lorsque votre application effectue automatiquement le suivi et la mise à jour des fichiers, afin de synchroniser ces fichiers avec le référentiel central de votre application. L'application SkyDrive met en œuvre ce contrat, de façon à ce que tous les fichiers sélectionnés ou enregistrés dans l'application SkyDrive puissent être facilement mis à jour ou actualisés, sans obliger l'utilisateur à passer par le sélecteur de fichiers. Par exemple, tout en restant dans mon application de photo favorite, je peux ouvrir une image stockée sur SkyDrive. Toutes les modifications apportées à cette image sont automatiquement renvoyées vers SkyDrive, sans que je sois obligé de passer par le sélecteur de fichiers.

Pour mieux comprendre ces contrats, il peut être utile de les envisager comme une progression. Par exemple, nous vous recommandons de faire en sorte que les applications Windows 8 mettent d'abord en œuvre le contrat Sélecteur d'ouverture de fichier, puis de déterminer s'il peut être utile de mettre également en œuvre le contrat Sélecteur d'enregistrement de fichier, et ainsi de suite.

 

Progression des contrats du sélecteur de fichiers

Progression des contrats du sélecteur de fichiers

Maintenant que nous avons présenté chaque contrat, examinons comment ils peuvent être mis en œuvre. Pour mieux illustrer les concepts, nous continuerons à utiliser l'application SkyDrive comme exemple.

Scénario 1 : contrat Sélecteur d'ouverture de fichier

Le contrat Sélecteur d'ouverture de fichier permet aux utilisateurs d'exploiter dans d'autres applications Windows 8 les fichiers qu'ils stockent, créent et gèrent dans votre application. Par exemple, comme SkyDrive met en œuvre ce contrat, je peux accéder à tous mes fichiers stockés sur SkyDrive dans toutes les applications Windows 8. Qu'il s'agisse de définir l'avatar de mon compte ou d'ouvrir un document sur SkyDrive, tous mes contenus SkyDrive sont accessibles, quelle que soit l'action en cours ou l'application Windows 8 utilisée.

Lorsque votre application met en œuvre le contrat, elle peut être lancée et affichée au sein du mode d'ouverture du sélecteur de fichiers. Un point d'entrée permettant d'accéder à votre application s'affiche dans le menu du sélecteur de fichiers à chaque fois que l'utilisateur sélectionne un des types de fichiers fournis par votre application :

Sélecteur d'ouverture de fichier

SkyDrive dans le menu du sélecteur de fichiers

Lorsqu'elle est lancée, votre application est placée dans la zone d'affichage du sélecteur de fichier, et le cadre du sélecteur de fichiers s'adapte au modèle de couleurs spécifié dans votre manifeste :

skydrive_thailand

Application SkyDrive hébergée dans le sélecteur de fichiers pour le contrat Sélecteur d'ouverture de fichier

Mise en œuvre du contrat

Pour intégrer le contrat Sélecteur d'ouverture de fichier à votre application, suivez les instructions de l'article Démarrage rapide. Une fois que votre application intègre le contrat, l'étape suivante consiste à configurer votre application pour qu'elle affiche les fichiers pouvant être sélectionnés par l'utilisateur. Après avoir ajouté le contrat Sélecteur d'ouverture de fichier à votre manifeste, vous pouvez utiliser le modèle Visual Studio intégré pour créer votre vue de sélection. Si vous avez déjà créé une vue dans votre application principale, vous pouvez également l'utiliser comme base pour la vue de sélection. Comme vous pouvez le constater sur l'illustration ci-dessous, SkyDrive réutilise la vue existante de l'application principale, ce qui permet de gagner du temps et d'améliorer la cohérence avec cette dernière.

skydrive_view1L'application SkyDrive offre des vues et des modèles de navigation similaires

L'application SkyDrive offre des vues et des modèles de navigation similaires
entre la version principale et la version hébergée de l'application

En outre, comme l'utilisateur pourra sélectionner des fichiers dans votre application, il est important de fournir un mécanisme de sélection. Si vous utilisez les contrôles intégrés HTML ListView ou XAML GridView, les mécanismes de sélection et les éléments visuels sont déjà intégrés aux contrôles.

Visuel de sélection dans l'application SkyDrive

Visuel de sélection dans l'application SkyDrive

Lorsqu'un utilisateur sélectionne un fichier, vous devez transmettre un objet StorageFile au sélecteur de fichiers, pour qu'il puisse être affiché dans le code Basket du sélecteur de fichiers. À partir de votre scénario, vous pouvez utiliser un objet StorageFile pris en charge localement ou par le biais d'un URI ou d'un flux. Les objets pris en charge via un URI ou un flux sont particulièrement adaptés aux fichiers qui ne sont pas stockés sur la machine locale, car le téléchargement du fichier peut être retardé jusqu'à ce que l'application qui l'utilise puisse y accéder. Le type d'objet à choisir dépend de la mise en œuvre de votre application. L'utilisation d'un URI est très pratique, mais les flux permettent de configurer la manière dont le fichier est téléchargé lorsque le fichier y accède. Par exemple, si le fichier n'est pas accessible publiquement via un URI et nécessite une authentification, le fait de passer par un flux permet de transmettre les identifiants requis. Voici un petit exemple d'ajout d'un objet StorageFile pris en charge par un flux au code Basket du sélecteur de fichiers :

JavaScript

 // Create thumbnail for the file
var thumbnailSource = Windows.Storage.Streams.RandomAccessStreamReference.createFromUri(new Windows.Foundation.Uri
(selectedItem.fileThumbnailUri));

// Add a file to the FileOpenPickerUI that is downloaded using BackgroundTransfer

Windows.Storage.StorageFile.createStreamedFileAsync(selectedItem.name, onDataRequested, thumbnailSource).done
(function (streamedFile) {   pickerUI.addFile(selectedItem.id, streamedFile);
});


function onDataRequested(outputStream) {
   var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
   var download = downloader.createDownload(new Windows.Foundation.Uri(selectedItem.fileUri), null);
   download.startAsync().done();
   var inputStream = download.getResultStreamAt(0);
   Windows.Storage.Streams.RandomAccessStream.copyAndCloseAsync(inputStream, outputStream).done(function () {
      inputStream.close();
   });
}

C#

 // Create thumbnail for the file
var thumbnailSource = RandomAccessStreamReference.CreateFromUri(new Uri(selectedItem.FileThumbnailUri));
// Add a file to the FileOpenPickerUI that is downloaded using BackgroundTransfer
StorageFile file = await StorageFile.CreateStreamedFileAsync(selectedItem.Name, OnDataRequested, thumbnailSource);
_openUI.AddFile(selectedItem.Id, file);

protected async void OnDataRequested(StreamedFileDataRequest outputStream)
{
   var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
   var download = downloader.CreateDownload(new Uri(_selectedItem.FileUri), null);
   var downloadTask = download.StartAsync();
   using (var inputStream = download.GetResultStreamAt(0))
   {
      await RandomAccessStream.CopyAndCloseAsync(inputStream, outputStream);
   }
   await downloadTask;
}

Création d'une expérience utilisateur pour la sélection de fichiers

La mise en œuvre d'un contrat Sélecteur d'ouverture de fichier consiste notamment à fournir une expérience de sélection sur mesure, centrée sur la sélection de fichiers et cohérente avec l'apparence et la personnalité de votre application principale. L'article Recommandations et liste de vérification pour les contrats de sélecteurs de fichiers liste les principaux points à prendre en compte pour concevoir cette expérience.

En termes de mise en œuvre, voici quelques moyens rapides permettant de respecter facilement les instructions :

  • Commandes : comme la barre des applications n'est pas prise en charge dans le sélecteur de fichiers, utilisez la ligne de commandes intégrée fournie dans le modèle Visual Studio. Cette notion est indiquée par le numéro 1 sur l'illustration ci-dessous.
  • Navigation : faites correspondre votre modèle de navigation et vos affordances avec les éléments que vous utilisez déjà dans l'application principale. Pensez également à définir le contenu de la propriété Title, en restant cohérent avec la façon dont vous indiquez la position actuelle dans l'application. Cette notion est indiquée par le numéro 2 sur l'illustration ci-dessous.
  • Sélection : comme le sélecteur de fichiers prend en charge les sélections simples et les sélections multiples, utilisez la propriété SelectionMode pour déterminer si votre application doit ou non autoriser la sélection de plusieurs fichiers. Cette notion est indiquée par le numéro 3 sur l'illustration ci-dessous.
  • Filtrage de la vue : utilisez la propriété AllowedFileTypes pour filtrer la vue et afficher uniquement les types de fichiers que l'utilisateur peut sélectionner.
  • Lancement : utilisez la propriété SettingsIdentifier pour relancer votre application à la position de navigation effective lorsque l'utilisateur a sélectionné pour la dernière fois un fichier à partir de votre application.
  • Authentification : si nécessaire, autorisez l'utilisateur à se connecter à votre application en utilisant une méthode cohérente avec l'application principale.
  • Organisation : organisez et affichez les fichiers afin d'optimiser la navigation dans les contenus. Lorsque cela est possible, utilisez le zoom sémantique et des filtres légers en lieu et place d'affordances plus lourdes (recherche, par exemple).

Présentation de l'interface utilisateur de l'application SkyDrive mettant en œuvre le contrat Sélecteur d'ouverture de fichier

Présentation de l'interface utilisateur de l'application SkyDrive mettant en œuvre le contrat Sélecteur d'ouverture de fichier

Déroulement intégral du flux

Pour résumer, voici une présentation complète du flux du sélecteur d'ouverture de fichier. Sur ce schéma, l'application mettant en œuvre le contrat Sélecteur d'ouverture de fichier (SkyDrive, par exemple) correspond à « Providing app » (Application source).

Déroulement intégral du flux du sélecteur d'ouverture de fichier

Scénario 2 : contrat Sélecteur d'enregistrement de fichier

Le contrat Sélecteur d'enregistrement de fichier rend votre application disponible parmi les emplacements d'enregistrement proposés dans les applications Windows 8. Par exemple, si SkyDrive met en œuvre ce contrat, je peux enregistrer des fichiers directement sur SkyDrive à partir de n'importe quelle autre application Windows 8. Je peux ainsi ajouter des fichiers à SkyDrive sans quitter l'application que j'utilise, et placer sur SkyDrive des fichiers qui ne seraient pas forcément disponibles dans l'application SkyDrive elle-même (car SkyDrive n'a pas toujours accès à l'emplacement utilisé par les applications pour stocker les fichiers).

Comme nous l'avons évoqué ci-dessus, si vous envisagez de mettre en œuvre le contrat Sélecteur d'enregistrement de fichier, votre application doit déjà mettre en œuvre le contrat Sélecteur d'ouverture de fichier, qui garantit que l'utilisateur pourra sélectionner des fichiers dans les emplacements où il les enregistre.

Une fois que vous avez intégré le contrat Sélecteur d'enregistrement de fichier dans votre application, celle-ci peut être lancée et affichée au sein du mode d'enregistrement du sélecteur de fichiers. Un point d'entrée permettant d'accéder à votre application s'affiche dans le menu du sélecteur de fichiers à chaque fois que l'utilisateur enregistre un type de fichier pris en charge par votre application. Comme avec le contrat Sélecteur d'ouverture de fichier, votre application est placée dans la zone d'affichage du sélecteur de fichiers lors de son lancement :

Application SkyDrive hébergée dans le sélecteur de fichiers pour le contrat Sélecteur d'enregistrement de fichier

Application SkyDrive hébergée dans le sélecteur de fichiers pour le contrat Sélecteur d'enregistrement de fichier

Mise en œuvre du contrat

Vous avez déjà mis en œuvre le contrat Sélecteur d'ouverture de fichier. Sachez que la mise en œuvre du contrat Sélecteur d'enregistrement de fichier présente de nombreuses similitudes (les deux procédures partagent d'ailleurs le même article Démarrage rapide). La première étape consiste à configurer votre application pour qu'elle affiche les emplacements dans lesquels les utilisateurs pourront enregistrer des fichiers. En réutilisant la vue existante créée pour le contrat Sélecteur d'ouverture de fichier, vous gagnez du temps et profitez d'une meilleure cohérence avec les autres vues de l'application. En fait, le moyen le plus simple pour parvenir au résultat escompté consiste simplement à réutiliser la vue du sélecteur d'ouverture de fichier et à supprimer le code Basket.

skydrive_documents

Application SkyDrive utilisant la même vue que l'application principale pour le sélecteur d'enregistrement de fichier

Lorsque l'utilisateur enregistre le fichier (vous recevez alors l'événement TargetFileRequested), validez le nom de fichier et l'extension (par le biais de la propriété FileName), pour vérifier qu'ils sont valides pour votre application. Si cela n'est pas le cas, vous pouvez présenter une erreur à l'utilisateur, en respectant les recommandations relatives à l'expérience utilisateur . Si le nom et l'extension sont valides, vous pouvez créer un nouvel objet StorageFile et le remettre au sélecteur de fichiers, qui le transmet ensuite à l'application chargée d'écrire le contenu (l'application qui a appelé le sélecteur de fichier). Voici un petit extrait de code illustrant cette notion :

JavaScript

 function onTargetFileRequested (e) {
   var request = e.request;
   var deferral = e.request.getDeferral();
   if (doesfileExist(saveUI.fileName)) {
      var dialog = new Windows.UI.Popups.MessageDialog("The location already has a file named " + saveUI.fileName + ".", "Replace the existing file?");
      dialog.commands.append(new Windows.UI.Popups.UICommand("Replace", function () {
         createFileAndFinishRequest(request, deferral)
      }));
      dialog.commands.append(new Windows.UI.Popups.UICommand("Cancel", function () {
         // Cancel save by setting targetFile to null
         request.targetFile = null;
         deferral.complete();
      }));
      dialog.showAsync().done();
   } else {
      createFileAndFinishRequest(request, deferral);
   }
}
function createFileAndFinishRequest(request, deferral) {
   _currentLocalFolder.createFileAsync(saveUI.fileName, Windows.Storage.CreationCollisionOption.replaceExisting).done
(function (newFile) {
      // Return the empty placeholder file so the calling app can add the file contents
      request.targetFile = newFile;
      deferral.complete();
   });
}

C#

 async void OnTargetFileRequested(FileSavePickerUI sender, TargetFileRequestedEventArgs args)
{
   var request = args.Request;
   var deferral = request.GetDeferral();
   if (DoesFileExist(_saveUI.FileName))
   {
      var dialog = new MessageDialog("The location already has a file named " + _saveUI.FileName + ".", "Replace 
 the existing file?");     dialog.Commands.Add(new UICommand("Replace", (command) =>
      {
         CreateFileAndFinishRequest(request, deferral);
      }));
      dialog.Commands.Add(new UICommand("Cancel", (command) =>
      {
         request.TargetFile = null;
         deferral.Complete();
      }));
      await dialog.ShowAsync();
   }
   else
   {
      CreateFileAndFinishRequest(request, deferral);
   }
}
async void CreateFileAndFinishRequest(TargetFileRequest request, TargetFileRequestDeferral deferral)
{
   request.TargetFile = await _currentFolder.CreateFileAsync(_fileSavePickerUI.FileName, CreationCollisionOption.
ReplaceExisting);   deferral.Complete();
}

Création d'une expérience utilisateur pour l'enregistrement de fichiers

Comme pour le contrat Sélecteur d'ouverture de fichier, la mise en œuvre d'un contrat Sélecteur d'enregistrement de fichier consiste notamment à fournir une expérience sur mesure, précise et cohérente avec l'apparence et la personnalité de votre application principale. Voici quelques consignes rapides permettant d'assurer la conformité de votre mise en œuvre du contrat Sélecteur d'enregistrement de fichier avec les recommandations :

  • Filtrage de la vue : si l'utilisateur modifie le type de fichier dans la liste Type de fichier du sélecteur (vous recevez alors un événement FileNameChanged), mettez à jour la vue de façon à afficher uniquement les fichiers qui correspondent au type sélectionné. Cette notion est indiquée par le numéro 1 sur l'illustration ci-dessous.
  • Gestion des erreurs : vérifiez que le nom, le type et l'emplacement d'enregistrement choisis par l'utilisateur sont valides. Si cela n'est pas le cas, affichez une erreur et offrez à l'utilisateur la possibilité de corriger le problème. Affichez les erreurs en utilisant le même style et la même apparence que les erreurs affichées dans l'application principale (qui suivent en principe les recommandations relatives aux erreurs). Cette notion est indiquée par le numéro 2 sur l'illustration ci-dessous.
  • Nom de fichier : remplissez automatiquement le champ du nom de fichier (par le biais de la méthode TrySetFileName) lorsqu'un utilisateur sélectionne un fichier dans votre page d'enregistrement. Cette notion est indiquée par le numéro 3 sur l'illustration ci-dessous.

Présentation de l'expérience utilisateur de l'application SkyDrive mettant en œuvre le contrat Sélecteur d'enregistrement de fichier

Présentation de l'expérience utilisateur de l'application SkyDrive, mettant en œuvre le contrat Sélecteur d'enregistrement de fichier

Déroulement intégral du flux

Pour résumer, voici une présentation complète du flux du sélecteur d'enregistrement de fichier. Comme sur le schéma illustrant le sélecteur d'ouverture de fichier, l'application mettant en œuvre le contrat du sélecteur de fichiers (SkyDrive, par exemple) correspond à « Providing app » (Application source).

Présentation du déroulement intégral du flux du sélecteur d'enregistrement de fichier

Scénario 3 : contrat Mise à jour des fichiers mis en cache

Le contrat Mise à jour des fichiers mis en cache permet à votre application de maintenir à jour les fichiers que vous gérez lorsqu'ils sont mis à jour par d'autres applications Windows 8. À quoi cela sert-il ? Examinons à nouveau l'application SkyDrive. En implémentant le contrat Mise à jour des fichiers mis en cache, SkyDrive peut faire en sorte que tous les fichiers que j'utilise (stockés sur SkyDrive) soient mis à jour et que les modifications que j'y apporte soient téléchargées vers SkyDrive. Supposons que j'utilise mon application de retouche photo favorite et que je souhaite supprimer les yeux rouges sur une image stockée sur SkyDrive. Dans cette application de retouche photo, j'ouvre le sélecteur de fichiers et je sélectionne une photo dans l'application SkyDrive. Je supprime les yeux rouges. L'application de retouche photo enregistre les modifications. Par le biais du contrat Mise à jour des fichiers mis en cache, ces modifications sont automatiquement renvoyées vers SkyDrive. En fait, les mises à jour supplémentaires que j'apporte à ce fichier continuent à être envoyées vers SkyDrive, pour toute la durée de vie de ce fichier. À aucun moment, je ne suis contraint d'exporter manuellement les modifications, ni de les télécharger vers SkyDrive : le contrat Mise à jour des fichiers mis en cache permet de faire en sorte que les fichiers stockés sur SkyDrive se comportent comme les fichiers locaux de mon PC. Je dispose ainsi toujours de la dernière version et je peux la mettre à jour à tout moment.

Ce contrat s'adresse tout particulièrement aux applications qui jouent le rôle d'emplacement de stockage principal, dans lequel les utilisateurs enregistrent régulièrement des fichiers et y accèdent. Avec la plupart des applications, vous n'avez pas besoin d'utiliser le contrat Mise à jour des fichiers mis en cache. Ce contrat nécessite un travail conséquent en termes de gestion des états, de traitement des flux de données complexes, de résolution des conflits et d'interface utilisateur. Aussi, sa mise en œuvre n'est pas aisée. Nous ne classons pas les contrats en catégories, mais si nous le faisions, celui-ci ferait partie de ceux réservés aux utilisateurs avancés !

Une fois que vous avez intégré le contrat, votre application s'active (mais elle ne s'affiche pas forcément) chaque fois qu'un fichier que vous gérez doit être actualisé ou mis à jour. Votre application peut être activée à tout moment, mais toutes les activations d'application sont gérées par le système et non pas directement par l'utilisateur. Par exemple, si l'utilisateur enregistre des données dans un fichier que votre application peut exploiter, le système active votre application pour que vous puissiez la gérer de façon adéquate (en téléchargeant les modifications vers votre service cloud, par exemple).

Mise en œuvre du contrat

Pour commencer la mise en œuvre du contrat Mise à jour des fichiers mis en cache, suivez les instructions de l'article Démarrage rapide. Dès lors que votre application met en œuvre le contrat, elle est activée automatiquement pour gérer les modifications apportées aux fichiers que vous pouvez exploiter.

Vous devez indiquer au système quels objets StorageFiles vous gérez. Grâce à la méthode setUpdateInformation, vous pouvez définir des autorisations de lecture/écriture et contrôler la façon dont votre application est activée pour exploiter le fichier et quand elle doit être activée. En règle générale, il est préférable de définir ces informations sur n'importe quel fichier sélectionné par l'utilisateur dans votre application par le biais du contrat Sélecteur d'enregistrement de fichier ou enregistré dans votre application par le biais du contrat Sélecteur d'enregistrement de fichier. Le code C#, C++ et JavaScript permettant de prendre en charge le contrat Mise à jour des fichiers mis en cache est disponible dans notre exemple de SDK pour les contrats du sélecteur de fichiers.

En outre, si vous mettez en œuvre le contrat Mise à jour des fichiers mis en cache, vous devrez peut-être inviter l'utilisateur à fournir des informations d'identification ou gérer un conflit de version pour pouvoir exploiter le fichier. Pour faire face à ces situations, vous pouvez indiquer au système que l'interface utilisateur est requise et que votre application sera lancée dans le sélecteur de fichiers.

skydrive_creds

Application SkyDrive invitant l'utilisateur à saisir des informations d'identification lors d'une opération liée au contrat Mise à jour des fichiers mis en cache

En plus des options définies par votre application, l'application qui demande une mise à jour ou enregistre le fichier peut contrôler une partie du flux du contrat Mise à jour des fichiers mis en cache. En particulier, l'application appelante peut dans certains cas empêcher votre application d'afficher son interface utilisateur. Ce choix n'est pas dû à votre application : l'appel échoue si l'application appelante souhaite actualiser ou enregistrer un fichier et que votre application a besoin d'afficher l'interface utilisateur pour traiter la demande.

Tout au long du processus, vous pouvez utiliser l'énumération UIStatus pour connaître l'étape en cours de traitement.

Création d'une expérience utilisateur pour l'actualisation et l'enregistrement de fichiers

Même si le contrat Mise à jour des fichiers mis en cache implique très peu d'éléments d'interface utilisateur, veillez à ce que votre application respecte les recommandations :

  • Affichage de l'interface utilisateur : affichez l'interface uniquement dans les cas où l'intervention de l'utilisateur est absolument indispensable (informations d'identification, conflits entre des fichiers, etc.). Renvoyez les cas de défaillance à l'application appelante, qui signalera à l'utilisateur que l'actualisation ou l'enregistrement a échoué. Par ailleurs, affichez les messages d'information (« Fichier enregistré », par exemple) uniquement dans l'application principale (si nécessaire) lors de son prochain lancement, et non pas dans l'interface du sélecteur de fichiers ou dans d'autres surfaces d'interface (toasts, par exemple).
  • État : si votre application gère un grand nombre d'actualisations et d'enregistrements, envisagez d'afficher la progression de chaque tâche dans l'interface utilisateur de votre application principale. Les utilisateurs pourront ainsi suivre la progression et résoudre les problèmes.

Déroulement intégral du flux

Pour résumer, voici une présentation complète du flux du contrat Mise à jour des fichiers mis en cache. Comme sur les schémas précédents, l'application mettant en œuvre le contrat du sélecteur de fichiers (SkyDrive, par exemple) correspond à « Providing app » (Application source).

Déroulement intégral du contrat Mise à jour des fichiers mis en cache

Pour conclure

Dans ce billet, je vous ai présenté les contrats du sélecteur de fichiers et expliqué comment vous pouvez les utiliser pour permettre à votre application de proposer de nouvelles expériences utilisateur dans Windows 8. Le contrat Sélecteur d'ouverture de fichier est un bon point de départ, qui permet aux utilisateurs d'utiliser dans d'autres applications Windows 8 les fichiers qu'ils stockent, créent et gèrent dans votre application. Si votre application offre des fonctionnalités plus sophistiquées, les contrats Sélecteur d'enregistrement de fichier et Mise à jour des fichiers mis en cache vous permettent d'inclure votre application dans d'autres scénarios d'utilisation de Windows 8.

Voici quelques points importants à ne pas oublier :

  • Les contrats du sélecteur de fichiers sont conçus comme une progression. Commencez par mettre en œuvre le contrat Sélecteur d'ouverture de fichier, puis passez au contrat Sélecteur d'enregistrement de fichier et enfin au contrat Mise à jour des fichiers mis en cache si vous le souhaitez.
  • Laissez votre application exprimer toute sa personnalité ! Les utilisateurs seront habitués à utiliser la version normale de votre application. Aussi, pensez à conserver la personnalité, l'apparence et les éléments de navigation dans la version hébergée au sein du sélecteur de fichiers.
  • Suivez les recommandations relatives à l'expérience utilisateur, qui permettent à votre application d'exprimer toute sa personnalité, tout en exploitant l'ensemble des affordances fournies par le sélecteur de fichiers. Ainsi, les utilisateurs profitent d'une expérience cohérente de premier plan lorsqu'ils utilisent votre application dans le sélecteur de fichiers.

Pour en savoir plus sur les contrats du sélecteur de fichiers dans Windows 8, cliquez sur les liens ci-dessous ou posez des questions dans nos forums.

Lien

Type

Points forts

Recommandations et liste de vérification pour les contrats de sélecteurs de fichiers

Recommandations relatives à l'expérience utilisateur

Conseils de mise en œuvre des contrats du sélecteur de fichiers

Démarrage rapide : intégration aux contrats du sélecteur de fichiers

Démarrage rapide

Explique comment intégrer les contrats du sélecteur de fichiers à votre application

Windows.Storage.Pickers.Provider

Guide de référence des API

Documentation de référence relative aux contrats Sélecteur d'ouverture de fichier et Sélecteur d'enregistrement de fichier

Espace de noms Windows.Storage.Provider

Guide de référence des API

Documentation de référence relative au contrat Mise à jour des fichiers mis en cache

Contrats du sélecteur de fichiers

Exemple de code

Explique comment utiliser les contrats Sélecteur d'ouverture de fichier, Sélecteur d'enregistrement de fichier et Mise à jour des fichiers mis en cache

Merci !

--Scott Hoogerwerf, chef de projet senior, Expérience utilisateur de Windows

Contributions : Derek Gebhard