Partager via


Schéma JSON de définition d’action pour Les actions d’application sur Windows

Cet article décrit le format du format de fichier JSON de définition d’action pour Les actions d’application sur Windows. Ce fichier doit être inclus dans votre projet avec l’action de génération définie sur « Contenu » et copier dans le répertoire de sortie défini sur « Copier si plus récent ». Spécifiez le chemin d’accès relatif au package du fichier JSON dans votre fichier XML du manifeste du package. Pour plus d’informations, consultez le format XML du manifeste du package du fournisseur d’actions.

Exemple de fichier JSON de définition d’action

"version": 2, 
  "actions": [ 
    { 
      "id": "Contoso.SampleGreeting", 
      "description": "Send greeting with Contoso", 
      "icon": "ms-resource//...", 
      "usesGenerativeAI": false,
      "isAvailable": false,
      "inputs": [ 
        { 
          "name": "UserFriendlyName", 
          "kind": "Text" 
        }, 
        { 
          "name": "PetName", 
          "kind": "Text", 
          "required": false 
        } 
      ], 
      "inputCombinations": [ 
        { 
          "inputs": ["UserFriendlyName"], 
          "description": "Greet ${UserFriendlyName.Text}" 
        }, 
        { 
          "inputs": ["UserFriendlyName", "PetName"], 
          "description": "Greet ${UserFriendlyName.Text} and their pet ${PetName.Text}" 
        } 
      ], 
      "contentAgeRating": "child",  
      "invocation": 
      {
        { 
          "type": "Uri", 
          "uri": "contoso://greetUser?userName=${UserFriendlyName.Text}&petName=${PetName.Text}", 
        }, 
        "where": [ 
          "${UserFriendlyName.Length > 3}" 
        ] 
      } 
    }, 
    { 
      "id": "Contoso.SampleGetText", 
      "description": "Summarize file with Contoso", 
      "icon": "ms-resource://...", 
      "inputs": [ 
        { 
          "name": "FileToSummarize", 
          "kind": "File" 
        } 
      ], 
      "inputCombinations": [ 
        { 
          "inputs": ["FileToSummarize"], 
          "description": "Summarize ${FileToSummarize.Path}" 
        }, 
      ], 
      "outputs": [ 
        { 
          "name": "Summary", 
          "kind": "Text" 
        } 
      ],
      "contentAgeRating": "child", 
      "invocation": { 
        "type": "COM", 
        "clsid": "{...}" 
      } 
    } 
  ] 
} 

Propriétés JSON de définition d’action

Les tableaux ci-dessous décrivent les propriétés du fichier JSON de définition d’action.

Racine du document

Propriété Catégorie Descriptif Obligatoire
Version ficelle Version du schéma. Lorsque de nouvelles fonctionnalités sont ajoutées, la version est incrémentée d’un. Oui.
Actions Action[] Définit les actions fournies par l’application. Oui.

Action

Propriété Catégorie Descriptif Obligatoire
pièce d'identité ficelle Identificateur d’action. Doit être unique par package d’application. Cette valeur n’est pas localisable. Oui
descriptif ficelle Description accessible par l’utilisateur pour cette action. Cette valeur est localisable. Oui
Wi-Fi ficelle Icône localisable pour l’action. Cette valeur est une chaîne ms-resource pour une icône déployée avec l’application. Non
utiliseL'intelligenceArtificielleGénérative Booléen Spécifie si l’action utilise l’IA générative. La valeur par défaut est false. Non
estDisponible Booléen Spécifie si l’action est disponible pour une utilisation lors de l’installation. La valeur par défaut est true. Oui
entrées Entrées[] Liste des entités que cette action accepte comme entrée. Oui
combinaisons d'entrée CombinaisonD'entrée[] Fournit des descriptions pour différentes combinaisons d’entrées. Oui
sorties Sortie[] Si spécifié, cela doit être une chaîne vide dans la version actuelle. Non
invocation Appel Fournit des informations sur la manière dont l’action est invoquée. Oui
classification par âge du contenu ficelle Nom de champ de UserAgeConsentGroup qui spécifie l’évaluation d’âge appropriée pour l’action. Les valeurs autorisées sont « Child », « Minor », « Adult ». Si aucune valeur n’est spécifiée, le comportement par défaut autorise l’accès à tous les âges. Non

Sortie

Propriété Catégorie Descriptif Obligatoire
nom ficelle Nom de la variable de l’entité. Cette valeur n’est pas localisable. Oui
gentil ficelle Nom de champ de l’énumération ActionEntityKind spécifiant le type d’entité. Cette valeur n’est pas localisable. Les valeurs autorisées sont « None », « Document », « File », « Photo », « Text ». Oui

Combinaison entrée

Propriété Catégorie Descriptif Obligatoire
entrées chaîne de caractères[] Liste des noms d’entrée pour un appel d’action. La liste peut être vide. Oui
descriptif ficelle Description de l’appel d’action. Cette valeur est localisable. Non
chaîne de caractères[] Une ou plusieurs instructions conditionnelles déterminant les conditions dans lesquelles l’action s’applique. Non

Appel

Propriété Catégorie Descriptif Obligatoire
type ficelle Type d’instanciation de l’action. Les valeurs autorisées sont « uri » et « com » Oui
URI ficelle URI absolu pour le lancement de l’action. L’utilisation de l’entité peut être incluse dans la chaîne. Oui, pour les actions instanciées par URI.
clsid ficelle ID de classe de la classe COM qui implémente IActionProvider. Oui, pour les actions COM
données d'entrée Liste des paires nom/valeur spécifiant des données supplémentaires pour les actions d’URI. Non. Valide uniquement pour les actions d’URI.

Énumération ActionEntityKind

L’énumération ActionEntityKind spécifie les types d’entités prises en charge par Les actions d’application sur Windows. Dans le contexte d’une définition d’action JSON, les types d’entités sont des littéraux de chaîne qui respectent la casse.

Chaîne de type d’entité Descriptif
« Fichier » Inclut tous les types de fichiers qui ne sont pas pris en charge par les entités de type photo ou document.
« Photo » Types de fichiers image. Les extensions de fichier image prises en charge sont «.jpg», « .jpeg » et «.png»
« Document » Types de fichiers de document. Les extensions de fichier de document prises en charge sont « .doc », «.docx», «.pdf», «.txt»
"Texte" Prend en charge les chaînes de texte.
« StreamingText » Prend en charge les chaînes de texte diffusées en continu de façon incrémentielle.
« RemoteFile » Prend en charge les métadonnées pour permettre aux actions de valider et de récupérer des fichiers de stockage à partir d’un service cloud.

Propriétés d’entité

Chaque type d’entité prend en charge une ou plusieurs propriétés qui fournissent des données d’instance pour l’entité. Les noms de propriété d’entité respectent la casse.

L’exemple suivant montre comment les entités sont référencées dans la chaîne de requête pour les actions lancées via l’activation de l’URI :

...?param1=${entityName.property1}&param2=${entityName.property2}

Pour plus d’informations sur l’utilisation des propriétés d’entité pour créer des sections conditionnelles dans la définition d’action JSON, consultez les clauses Where.

Propriétés d’entité de fichier

Propriété Catégorie Descriptif
Nom de fichier ficelle Le nom du fichier.
« Chemin » ficelle Chemin d’accès du fichier.
« Extension » ficelle Extension de fichier.

Propriétés d’entité de document

L’entité Document prend en charge les mêmes propriétés que File.

Propriétés de l’entité photo

L’entité Photo prend en charge toutes les propriétés de File en plus des propriétés suivantes.

Propriété Catégorie Descriptif
« IsTemporaryPath » Booléen Valeur spécifiant si la photo est stockée dans un chemin d’accès temporaire. Par exemple, cette propriété est vraie pour les photos stockées en mémoire à partir d’une bitmap, qui ne sont pas stockées définitivement dans un fichier.

Propriétés de l’entité de texte

Propriété Catégorie Descriptif
"Texte" ficelle Texte intégral.
« ShortText » ficelle Version abrégée du texte, adaptée à l’affichage de l’interface utilisateur.
Titre ficelle Titre du texte.
« Description » ficelle Description du texte.
Longueur double Longueur du texte en caractères.
Compteur de mots double Nombre de mots dans le texte.

Propriétés de l’entité StreamingText

Propriété Catégorie Descriptif
« TextFormat » ficelle Format du texte de diffusion en continu. Les valeurs prises en charge sont « Plain », « Markdown ».

Propriétés de l’entité RemoteFile

Propriété Catégorie Descriptif
« AccountId » ficelle Identificateur du compte de service cloud associé au fichier distant.
« TypeDeContenu » ficelle Type MIME du fichier distant.
« DriveId » ficelle Identificateur du lecteur distant associé au fichier distant.
« Extension » ficelle Extension du fichier distant.
« FileId » ficelle Identificateur du fichier distant.
« FileKind » RemoteFileKind Type de fichier distant.
« SourceId » ficelle Identificateur du service cloud qui héberge le fichier distant.
« SourceUri » ficelle URI du fichier distant.

RemoteFileKind, énumération

L’énumération RemoteFileKind spécifie les types de fichiers pris en charge pour l’entité RemoteFile .

Chaîne de type d’entité Descriptif
« Fichier » Inclut tous les types de fichiers qui ne sont pas pris en charge par les entités de type photo ou document.
« Photo » Types de fichiers image. Les extensions de fichier image prises en charge sont «.jpg», « .jpeg » et «.png»
« Document » Types de fichiers de document. Les extensions de fichier de document prises en charge sont « .doc », «.docx», «.pdf», «.txt»

Clauses WHERE

Le format JSON de définition d’action prend en charge les clauses qui peuvent être utilisées pour implémenter une logique conditionnelle, par exemple en spécifiant qu’une action doit être appelée uniquement lorsqu’une propriété d’entité a une valeur spécifiée.

Les opérateurs suivants peuvent être utilisés avec les clauses Where .

Opérateur Descriptif
== Égalité
~= Égalité sans respect de la casse
!= Inégalité
< Inférieur à
<= Inférieur ou égal à
> Supérieur à
>= Supérieur ou égal à
|| OU logique
&& ET logique

Les clauses Where utilisent le format suivant :

"where": [ 
    "${<property_accessor>} <operator> <value>" 
] 

L’exemple suivant montre une clause where qui prend la valeur true si une entité File a l’extension de fichier «.txt».

"where": [ 
    "${File.Extension} ~= \".txt\"" 
] 

Plusieurs clauses where peuvent être combinées avec les opérateurs logiques ET et OU.

"where": [ 
  "${File.Extension} ~= \".txt\" || ${File.Extension} ~= \".md\"" 
]