Partager via


Utilisation de propriétés personnalisées pour les extensions d’application

Les propriétés d’extension d’application sont un champ de métadonnées personnalisé fourni par le développeur de l’extension d’application dans son manifeste d’application. Les hôtes d’extension d’application peuvent lire ces métadonnées lors de l’examen des extensions d’application sans avoir à charger du contenu à partir de l’extension d’application.

Les propriétés sont une fonctionnalité facultative mais très utile. Il existe un large éventail de métadonnées possibles dont vous pouvez avoir besoin lors de la création d’une plateforme hôte d’extension d’application, telle que la version, les fonctionnalités, les listes de types de fichiers pris en charge ou d’autres données utiles avant de charger une extension d’application. Ces informations peuvent même déterminer la façon dont vous chargez une extension d’application. Au lieu d’essayer de prédire tous les champs dont vous avez besoin, les propriétés d’extension d’application fournissent un canevas ouvert pour définir exactement ce dont vous avez besoin de manière appropriée pour votre application.

Avantages des propriétés d’extension d’application

Il existe deux raisons importantes pour lesquelles vous devez tirer parti des propriétés d’extension d’application :

  • Il s’agit d’un moyen simple et sûr de stocker des métadonnées de base ou importantes sur votre plateforme d’extension d’application sans avoir à placer ces informations dans des fichiers. Vous pouvez l’utiliser pour des concepts importants tels que le contrôle de version, les autorisations et l’application. Par exemple, votre application peut insister sur la définition et la présence d’un version champ dans les propriétés et avoir un comportement de chargement différent en fonction de cette valeur.

  • Étant donné que les informations sont stockées dans le manifeste de l’application, elles peuvent être indexées et mises à disposition via une API à l’avenir. Cela signifie que vous pouvez les présenter à l’écran pour l’utilisateur, ou disposer d’une extension d’application plus affinée pour rechercher des propriétés spécifiques sans avoir à déployer et charger l’extension au préalable.

Comment déclarer des propriétés

Les propriétés sont déclarées dans le fichier Package.appxmanifest dans votre package. Elles peuvent être lues au moment de l’exécution par l’hôte d’extension en tant que jeu de propriétés. Étant donné que l’hôte définit la plateforme, il incombe à l’hôte de communiquer avec les développeurs d’extensions sur les propriétés disponibles et qui doivent être placées dans la déclaration AppExtension.

Remarque

Le concepteur de manifeste dans Visual Studio ne prend pas en charge la possibilité de définir des propriétés. Vous devez modifier le Package.appxmanifest directement pour définir des propriétés.

Pour déclarer des propriétés, placez-les dans l’élément <uap3:Properties/> sous votre <uap3:AppExtension> déclaration. Voici un exemple <uap3:AppExtension> de déclaration pour Microsoft Edge qui utilise des propriétés prises en charge par Edge.

<uap3:AppExtension Name="com.microsoft.edge.extension" Id="FirstExtension" PublicFolder="Extension" DisplayName="MyExtension">
  <uap3:Properties>
    <Capabilities>
      <Capability Name="websiteContent" />
      <Capability Name="websiteInfo" />
      <Capability Name="browserWebRequest" />
      <Capability Name="browserStorage" />
    </Capabilities>
  </uap3:Properties>
</uap3:AppExtension>

Edge a défini une valeur de propriété connue de Capabilities avec une liste de fonctionnalités d’extension déclarées. En tant qu’hôte, vous pouvez soutenir les propriétés que vous souhaitez dans vos extensions d’application. Étant donné qu’il s’agit d’un ensemble de propriétés, vous pouvez également avoir des propriétés imbriquées. Il est judicieux d’avoir une propriété de version racine que vous pouvez utiliser au cas où vous modifiez les formats de vos extensions à l’avenir. Nous n’avons pas intentionnellement mis Version en tant qu’attribut d’extensions d’application afin que vous ne soyez pas artificiellement limité à l’utilisation de notre sémantique de gestion de version. Au lieu de cela, nous avons créé des propriétés où la version peut être l'un des nombreux attributs définis sur mesure, dans la manière et le format que vous souhaitez, et traitées selon vos préférences.

Utilisation des propriétés

Supposons que vous disposiez d’une propriété simple dans des extensions d’application qui décrivent une version, comme la suivante.

<uap3:Properties>
    <Version>1.0.0.0</Version>
</uap3:Properties>

Pour obtenir ces données au moment de l’exécution, il suffit d'appeler GetExtensionPropertiesAsync() sur les extensions de l'application.

string extensionVersion = "Unknown";
var properties = await ext.GetExtensionPropertiesAsync() as PropertySet;
if (properties != null)
{
    if (properties.ContainsKey("Version"))
    {
        PropertySet versionProperty = properties["Version"] as PropertySet;
        extensionVersion = versionProperty["#text"].ToString();
    }
}