Compartir a través de


Esquema JSON de definición de acción para acciones de aplicación en Windows

En este artículo se describe el formato del formato de archivo JSON de definición de acción para Acciones de aplicación en Windows. Este archivo debe incluirse en el proyecto con Build Action definido con el valor "Content" y con Copy to Output Directory con el valor “Copy if newer”. Especificar en el fichero XML del manifiesto del paquete la ruta al archivo JSON relativa al paquete. Para más información, véase Formato XML del manifiesto de paquete del proveedor de acciones.

Archivo JSON de definición de acción de ejemplo

"version": 3, 
  "actions": [ 
    { 
      "id": "Contoso.SampleGreeting", 
      "description": "Send greeting with Contoso", 
      "icon": "ms-resource//...", 
      "usesGenerativeAI": false,
      "isAvailable": false,
      "allowedAppInvokers": ["*"],
      "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": "{...}" 
      } 
    } 
  ] 
} 

Propiedades JSON de definición de acción

Las siguientes tablas describen las propiedades del fichero JSON de definición de acciones.

El campo Versión indica la versión del esquema en la que se introdujo la propiedad.

El campo PWA indica compatibilidad con proveedores de acciones que se implementan como una aplicación web progresiva (PWA). Para obtener más información sobre las acciones de aplicación con PWA, consulte Habilitar acciones de aplicación en Windows para una PWA.

Raíz del documento

Propiedad Tipo Descripción Obligatorio Versión
Versión cuerda / cadena Versión de esquema. Con una nueva funcionalidad añadida, la versión se incrementa en uno. Sí. 2
Acciones Acción[] Define las acciones suministradas por la aplicación. Sí. 2

Acción

Propiedad Tipo Descripción Obligatorio Versión PWA
identificación cuerda / cadena Identificador de acción Debe ser único por paquete de aplicación. Este valor no se puede localizar. 2
descripción cuerda / cadena Descripción hacia el usuario de esta acción. Este valor se localiza. 2
icono cuerda / cadena Icono localizable para la acción. Este valor es una cadena ms-resource para un icono instalado con la aplicación. No 2
allowedAppInvokers cadena[] Especifica una lista de identificadores de modelo de usuario de aplicación (AppUserModelIDs) que pueden detectar la acción a través de una llamada a GetActionsForInputs o GetAllActions. Se admiten caracteres comodín. "*" coincidirá con todos los AppUserModelIDs. Esto se recomienda para la mayoría de las acciones, a menos que haya una razón específica para limitar los autores de llamadas que pueden invocar una acción. Si allowedAppInvokers se omite o es una lista vacía, ninguna aplicación podrá detectar la acción. Para obtener más información sobre AppUserModelIDs, consulte Identificadores de modelo de usuario de aplicación. No 3
utiliza IA generativa Booleano Especifica si la acción usa IA generativa. El valor predeterminado es false. No 2
estáDisponible Booleano Especifica si la acción está disponible para su uso tras la instalación. El valor predeterminado es true. 2
Entradas Entradas[] Listado de entidades que acepta como inputs esta aplicación. 2
combinaciones de entrada CombinaciónDeEntradas[] Proporciona las descripciones para distintas combinaciones de inputs. 2
Salidas Salida[] Si se especifica, tiene que ser una cadena vacía, en la versión actual. No 2
a servicio Invocación Proporciona información sobre la forma en que se invoca la acción. 2
clasificación de edad del contenido cuerda / cadena Nombre de campo de UserAgeConsentGroup que especifica la clasificación de edad adecuada para la acción. Los valores permitidos son "Niño", "Menor", "Adulto". Si no se especifica un valor, el comportamiento por defecto permitirá el acceso a todas las edades. No 2

Salida

Propiedad Tipo Descripción Obligatorio Versión PWA
nombre cuerda / cadena El nombre de la variable de la entidad. Este valor no se puede localizar. 2
amable cuerda / cadena Un nombre de campo de la enumeración ActionEntityKind que especifica el tipo de entidad. Este valor no se puede localizar. Los valores permitidos son "None", "Document", "File", "Photo", "Text", "StreamingText", "RemoteFile", "Table", "Contact". 2

La versión del esquema y la compatibilidad con PWA varían para los distintos valores de la propiedad kind . Consulte la entrada de cada tipo de entidad para obtener más información.

Combinación de Entrada

Propiedad Tipo Descripción Obligatorio Versión PWA
Entradas cadena[] Una lista de nombres de inputs para la llamada a una acción. La lista puede estar vacía. 2
descripción cuerda / cadena Descripción de la invocación de acción. Este valor se localiza. No 2
¿dónde? cadena[] Una o más expresiones condicionales que determinan las condiciones bajo las cuales la acción es aplicable. No 2

Invocación

Propiedad Tipo Descripción Obligatorio Versión PWA
tipo cuerda / cadena Tipo de instancia de la acción. Los valores permitidos son "uri" y "com". 2 Solo "uri".
Uri cuerda / cadena URI absoluto para lanzar la acción. El uso de entidades se puede incluir dentro de la cadena de texto. Se puede agregar un parámetro de cadena de consulta reservada especial, token=${$.Token}, al URI para permitir que las acciones validen que han sido invocadas por el Action Runtime. Para obtener más información, consulte El parámetro de cadena de consulta de URI $.Token. Sí, para acciones instanciadas de URI. 2
clsid cuerda / cadena El ID de clase de la clase COM que implementa IActionProvider. Sí, para acciones COM. 2 No
datos de entrada Pares de nombre y valor JSON Una lista de pares de nombres/valores que especifiquen datos adicionales para las acciones URI. No. Solo válido para acciones URI. 2

Enumeración ActionEntityKind

La enumeración ActionEntityKind especifica los tipos de entidades compatibles con Acciones de aplicación en Windows. En el contexto de una definición de acción en JSON, los tipos de entidades son literales de cadena en los que se distingue entre mayúsculas y minúsculas.

Cadena del tipo de entidad Descripción Versión PWA
"Archivo" Incluye todos los tipos de archivo que no son compatibles con los tipos de entidad de foto o documento. 2 Solo entrada.
Foto Tipos de archivo de imagen. Las extensiones de archivo de imagen permitidas son ".jpg", ".jpeg", y ".png" 2 Solo entrada.
"Documento" Tipos de archivos de documentos. Las extensiones de archivo de documento permitidas son ".doc", ".docx", ".pdf", ".txt" 2 Solo entrada.
"Texto" Admite cadenas de texto. 2 Solo entrada.
"StreamingText" Admite secuencias de texto transmitidas de forma incremental. 2 Falso
Archivo remoto Admite metadatos para habilitar acciones para validar y recuperar archivos de respaldo de un servicio en la nube. 2 Solo entrada.
"Tabla" Tabla 2D de valores de cadena serializados en una matriz dimensional de cadenas. 3 No.
"Contacto" Conjunto de datos que representan un contacto. 3 Solo entrada.

Propiedades de entidad

Cada tipo de entidad admite una o más propiedades que proporcionan datos de instancia de la entidad. Los nombres de propiedad de entidad distinguen entre mayúsculas y minúsculas.

El siguiente ejemplo muestra cómo se referencian en la cadena de consulta las entidades para las acciones que se arrancan mediante activación URI:

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

Para obtener información sobre el uso de propiedades de entidad para crear secciones condicionales en el JSON de definición de acción, consulte Cláusulas Where.

Propiedades de la entidad archivo

Propiedad Tipo Descripción Versión PWA
"FileName" cuerda / cadena El nombre del archivo. 2 Solo entrada.
Camino cuerda / cadena Ruta de acceso del archivo. 2 Solo entrada.
"Extensión" cuerda / cadena Extensión del archivo. 2 Solo entrada.

Propiedades de entidad de documento

La entidad Document admite las mismas propiedades que File.

Propiedades de la entidad fotográfica

LA entidad Photo admite todas las propiedades de File además de las siguientes propiedades.

Propiedad Tipo Descripción Versión PWA
"IsTemporaryPath" Booleano Un valor que especifica si la foto se encuentra guardada en una ruta temporal. Por ejemplo, esta propiedad está puesta a true para aquellas fotos guardadas en memoria desde un mapa de bits, no guardadas de forma permanente en un archivo. 2 Solo entrada.

Propiedades de la entidad Text

Propiedad Tipo Descripción Versión PWA
"Texto" cuerda / cadena El texto completo. 2 Solo entrada.
TextoCorto cuerda / cadena Una versión resumida del texto, para poder mostrarla en la IU. 2 Solo entrada.
"Título" cuerda / cadena El título del texto. 2 Solo entrada.
"Descripción" cuerda / cadena Una descripción del texto. 2 Solo entrada.
"Longitud" doble La longitud del texto, en caracteres. 2 Solo entrada.
Conteo de palabras doble El número de palabras del texto. 2 Solo entrada.

Propiedades de la entidad StreamingText

Propiedad Tipo Descripción Versión PWA
"TextFormat" cuerda / cadena Formato del texto de streaming. Los valores admitidos son "Plain", "Markdown". 2 No

Propiedades de entidad RemoteFile

Propiedad Tipo Descripción Versión PWA
IdentificaciónDeCuenta cuerda / cadena Identificador de la cuenta de servicio en la nube asociada al archivo remoto. 2 Solo entrada.
TipoDeContenido cuerda / cadena Tipo MIME del archivo remoto. 2 Solo entrada.
"DriveId" cuerda / cadena Identificador de la unidad remota asociada al archivo remoto. 2 Solo entrada.
"Extensión" cuerda / cadena Extensión del archivo remoto. 2 Solo entrada.
"FileId" cuerda / cadena Identificador del archivo remoto. 2 Solo entrada.
"FileKind" RemoteFileKind Tipo de archivo remoto. 2 Solo entrada.
Id de fuente cuerda / cadena Identificador del servicio en la nube que hospeda el archivo remoto. 2 Solo entrada.
"SourceUri" cuerda / cadena La URI del archivo remoto. 2 Solo entrada.

Enumeración RemoteFileKind

La enumeración RemoteFileKind especifica los tipos de archivos que se admiten para la entidad RemoteFile .

Cadena del tipo de entidad Descripción Versión
"Archivo" Incluye todos los tipos de archivo que no son compatibles con los tipos de entidad de foto o documento. 2
Foto Tipos de archivo de imagen. Las extensiones de archivo de imagen permitidas son ".jpg", ".jpeg", y ".png" 2
"Documento" Tipos de archivos de documentos. Las extensiones de archivo de documento permitidas son ".doc", ".docx", ".pdf", ".txt" 2

Propiedades de entidad de tabla

Propiedad Tipo Descripción Obligatorio Versión PWA
"RowCount" entero Número de filas de la tabla. 3 No
"ColumnCount" entero Número de columnas de la tabla. 3 No
"Título" cuerda / cadena Título de la tabla. No 3 No
"Descripción" cuerda / cadena Descripción de la tabla. No 3 No

Propiedades de entidad de contacto

Propiedad Tipo Descripción Obligatorio Versión PWA
"Correo electrónico" cuerda / cadena Dirección de correo electrónico del contacto. No 3 Solo entrada.
"FullName" entero Nombre completo del contacto. No 3 Solo entrada.
"Título" cuerda / cadena Título del contacto. No 3 Solo entrada.
"Descripción" cuerda / cadena Descripción del contacto. No 3 Solo entrada.

Cláusula where

El formato JSON de definición de acción admite donde se pueden usar cláusulas para implementar lógicas condicionales, como especificar que una acción deba ser invocada solo si una cierta propiedad de una entidad toma un determinado valor.

Los siguientes operadores se pueden usar con donde cláusulas.

Operador Descripción
== Igualdad
~= Igualdad sin distinción entre mayúsculas y minúsculas
!= Desigualdad
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
|| O lógico
&& Y lógico

Donde las cláusulas utilizan el siguiente formato:

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

El siguiente ejemplo muestra una donde la cláusula pone a true si una entidad File tiene la extensión de archivo ".txt".

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

Varias donde cláusulas pueden combinarse mediante los operadores lógicos AND y OR.

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