Partilhar via


Esquema JSON de definição de ação para ações de aplicativos no Windows

Este artigo descreve o formato do formato de arquivo JSON de definição de ação para Ações de Aplicativo no Windows. Esse arquivo deve ser incluído em seu projeto com a Ação de compilação definida como "Conteúdo" e Copiar para o diretório de saída definida como "Copiar se for mais recente". Especifique o caminho relativo ao pacote para o arquivo JSON no arquivo XML do manifesto do pacote. Para obter mais informações, consulte Manifesto de pacote XML do fornecedor de ações.

Exemplo de arquivo JSON de definição de ação

"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": "{...}" 
      } 
    } 
  ] 
} 

Propriedades JSON de definição de ação

As tabelas abaixo descrevem as propriedades do arquivo JSON de definição de ação.

O campo Versão indica a versão do esquema na qual a propriedade foi introduzida.

O campo PWA indica suporte para provedores de ação que são implementados como uma aplicação web progressiva (PWA). Para obter mais informações sobre ações de aplicativos com PWAs, consulte Habilitar ações de aplicativos no Windows para um PWA.

Raiz do documento

Propriedade Tipo Descrição Obrigatório Versão
versão cadeia (de caracteres) Versão do esquema. Quando uma nova funcionalidade é adicionada, a versão aumenta em um. Sim. 2
ações Ação[] Define as ações fornecidas pelo aplicativo. Sim. 2

Ação

Propriedade Tipo Descrição Obrigatório Versão PWA
identificação cadeia (de caracteres) Identificador de ação. Deve ser exclusivo por pacote de aplicativo. Este valor não é localizável. Sim 2 Sim
descrição cadeia (de caracteres) Descrição destinada ao utilizador para esta ação. Este valor é localizável. Sim 2 Sim
ícone cadeia (de caracteres) Ícone localizável para a ação. Esse valor é uma cadeia de caracteres ms-resource para um ícone implantado com a aplicação. Não 2 Sim
allowedAppInvokers string[] Especifica uma lista de IDs de Modelo de Usuário de Aplicativo (AppUserModelIDs) que podem descobrir a ação por meio de uma chamada para GetActionsForInputs ou GetAllActions. Curingas são suportados. "*" corresponderá a todos os AppUserModelIDs. Isso é recomendado para a maioria das ações, a menos que haja um motivo específico para limitar os chamadores que podem invocar uma ação. Se allowedAppInvokers for omitido ou for uma lista vazia, nenhum aplicativo poderá descobrir a ação. Para obter mais informações sobre AppUserModelIDs, consulte Application User Model IDs Não 3 Sim
usa IA Generativa booleano Especifica se a ação usa IA generativa. O valor predefinido é false. Não 2 Sim
está disponível booleano Especifica se a ação está disponível para uso durante a instalação. O valor padrão é true. Sim 2 Sim
Insumos Entradas[] Lista de entidades que esta ação aceita como entrada. Sim 2 Sim
combinaçõesDeEntrada CombinaçãoDeEntrada[] Fornece descrições para diferentes combinações de entradas. Sim 2 Sim
saídas Saída[] Se especificado, deve ser uma cadeia de caracteres vazia na versão atual. Não 2 Sim
invocação Invocação Fornece informações sobre como a ação é invocada. Sim 2 Sim
classificaçãoEtáriaDoConteúdo cadeia (de caracteres) Um nome de campo do UserAgeConsentGroup que especifica a classificação etária apropriada para a ação. Os valores permitidos são "Criança", "Menor", "Adulto". Se nenhum valor for especificado, o comportamento padrão permitirá o acesso a todas as idades. Não 2 Sim

Resultado

Propriedade Tipo Descrição Obrigatório Versão PWA
nome cadeia (de caracteres) O nome da variável da entidade. Este valor não é localizável. Sim 2 Sim
tipo cadeia (de caracteres) Um nome de campo da enumeração ActionEntityKind especificando o tipo de entidade. Este valor não é localizável. Os valores permitidos são "None", "Document", "File", "Photo", "Text", "StreamingText", "RemoteFile", "Table", "Contact". Sim 2 Sim

A versão do esquema e o suporte ao PWA variam para os diferentes valores da propriedade kind . Consulte a entrada para cada tipo de entidade para obter detalhes.

Combinação de Entrada

Propriedade Tipo Descrição Obrigatório Versão PWA
Insumos string[] Uma lista de nomes de entrada para uma invocação de ação. A lista pode estar vazia. Sim 2 Sim
descrição cadeia (de caracteres) Descrição da invocação da ação. Este valor é localizável. Não 2 Sim
onde string[] Uma ou mais declarações condicionais que determinam as condições em que a ação se aplica. Não 2 Sim

Invocação

Propriedade Tipo Descrição Obrigatório Versão PWA
tipo cadeia (de caracteres) O tipo de instanciação para a ação. Os valores permitidos são "uri" e "com". Sim 2 Apenas "uri".
URI cadeia (de caracteres) O URI absoluto para o lançamento da ação. O uso da entidade pode ser incluído na cadeia de caracteres. Um parâmetro token=${$.Token} especial de cadeia de caracteres de consulta reservada pode ser adicionado ao URI para permitir que ações validem que foram invocadas pelo Action Runtime. Para obter mais informações, consulte Usar o $. Parâmetro de cadeia de caracteres de consulta URI de token. Sim, para ações instanciadas de URI. 2 Sim
CLSID cadeia (de caracteres) O ID de classe para a classe COM que implementa IActionProvider. Sim, para ações COM. 2 Não
dados de entrada Pares nome/valor JSON Uma lista de pares nome/valor especificando dados adicionais para ações de URI. Não. Válido apenas para ações de URI. 2 Sim

Enumeração ActionEntityKind

A enumeração ActionEntityKind especifica os tipos de entidades suportadas pelas Ações de Aplicativo no Windows. No contexto de uma definição de ação JSON, os tipos de entidade são literais de texto que são sensíveis a maiúsculas e minúsculas.

String tipo de entidade Descrição Versão PWA
"Ficheiro" Inclui todos os tipos de arquivo que não são suportados por tipos de entidade de foto ou documento. 2 Apenas entrada.
"Foto" Tipos de arquivo de imagem. As extensões de arquivo de imagem suportadas são ".jpg", ".jpeg" e ".png" 2 Apenas entrada.
"Documento" Tipos de arquivo de documento. As extensões de arquivo de documento suportadas são ".doc", ".docx", ".pdf", ".txt" 2 Apenas entrada.
"Texto" Suporta cadeias de texto. 2 Apenas entrada.
StreamingText Suporta cadeias de caracteres de texto transmitidas incrementalmente. 2 Falso
"Arquivo remoto" Suporta metadados para permitir ações para validar e recuperar arquivos de backup de um serviço de nuvem. 2 Apenas entrada.
Tabela Uma tabela 2D de valores de cadeia de caracteres que é serializada para uma matriz unidimensional de cadeias de caracteres. 3 Não.
Contacto Um conjunto de dados que representam um contato. 3 Apenas entrada.

Propriedades da entidade

Cada tipo de entidade suporta uma ou mais propriedades que fornecem dados de instância para a entidade. Os nomes de propriedade da entidade diferençiam maiúsculas de minúsculas.

O exemplo a seguir ilustra como as entidades são referenciadas na cadeia de caracteres de consulta para ações que são iniciadas por meio da ativação de URI:

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

Para obter informações sobre como usar propriedades de entidade para criar seções condicionais na definição de ação JSON, consulte Cláusulas Where.

Propriedades da entidade de arquivo

Propriedade Tipo Descrição Versão PWA
"Nome do arquivo" cadeia (de caracteres) O nome do arquivo. 2 Apenas entrada.
"Caminho" cadeia (de caracteres) O caminho do arquivo. 2 Apenas entrada.
"Extensão" cadeia (de caracteres) A extensão do arquivo. 2 Apenas entrada.

Propriedades da entidade do documento

A entidade Document suporta as mesmas propriedades que File.

Propriedades da entidade fotográfica

A entidade Photo suporta todas as propriedades de File , além das seguintes propriedades.

Propriedade Tipo Descrição Versão PWA
ÉCaminhoTemporário booleano Um valor que especifica se a foto é armazenada em um caminho temporário. Por exemplo, essa propriedade é verdadeira para fotos armazenadas na memória de um bitmap, não armazenadas permanentemente em um arquivo. 2 Apenas entrada.

Propriedades da entidade de texto

Propriedade Tipo Descrição Versão PWA
"Texto" cadeia (de caracteres) O texto integral. 2 Apenas entrada.
Texto Curto cadeia (de caracteres) Uma versão abreviada do texto, adequada para exibição da interface do usuário. 2 Apenas entrada.
"Título" cadeia (de caracteres) O título do texto. 2 Apenas entrada.
"Descrição" cadeia (de caracteres) Uma descrição do texto. 2 Apenas entrada.
"Duração" duplo O comprimento do texto em caracteres. 2 Apenas entrada.
"Contagem de palavras" duplo O número de palavras no texto. 2 Apenas entrada.

Propriedades da entidade StreamingText

Propriedade Tipo Descrição Versão PWA
"Formato de texto" cadeia (de caracteres) O formato do texto de streaming. Os valores suportados são "Plain", "Markdown". 2 Não

Propriedades da entidade RemoteFile

Propriedade Tipo Descrição Versão PWA
ID da Conta cadeia (de caracteres) O identificador da conta de serviço de nuvem associada ao arquivo remoto. 2 Apenas entrada.
TipoDeConteúdo cadeia (de caracteres) O tipo MIME do arquivo remoto. 2 Apenas entrada.
"DriveId" cadeia (de caracteres) O identificador da unidade remota associada ao arquivo remoto. 2 Apenas entrada.
"Extensão" cadeia (de caracteres) A extensão do arquivo remoto. 2 Apenas entrada.
"FileId" cadeia (de caracteres) O identificador do arquivo remoto. 2 Apenas entrada.
"FileKind" RemoteFileKind O tipo de arquivo remoto. 2 Apenas entrada.
"FonteId" cadeia (de caracteres) O identificador do serviço de nuvem que hospeda o arquivo remoto. 2 Apenas entrada.
"SourceUri" cadeia (de caracteres) O URI do arquivo remoto. 2 Apenas entrada.

Enumeração RemoteFileKind

A enumeração RemoteFileKind especifica os tipos de arquivos com suporte para a entidade RemoteFile .

String tipo de entidade Descrição Versão
"Ficheiro" Inclui todos os tipos de arquivo que não são suportados por tipos de entidade de foto ou documento. 2
"Foto" Tipos de arquivo de imagem. As extensões de arquivo de imagem suportadas são ".jpg", ".jpeg" e ".png" 2
"Documento" Tipos de arquivo de documento. As extensões de arquivo de documento suportadas são ".doc", ".docx", ".pdf", ".txt" 2

Propriedades da entidade da tabela

Propriedade Tipo Descrição Obrigatório Versão PWA
"Contagem de linhas" número inteiro O número de linhas na tabela. Sim 3 Não
ContagemDeColunas número inteiro O número de colunas na tabela. Sim 3 Não
"Título" cadeia (de caracteres) O título da tabela. Não 3 Não
"Descrição" cadeia (de caracteres) A descrição da tabela. Não 3 Não

Propriedades da entidade de contato

Propriedade Tipo Descrição Obrigatório Versão PWA
"E-mail" cadeia (de caracteres) O endereço de e-mail do contato. Não 3 Apenas entrada.
"Nome completo" número inteiro O nome completo do contato. Não 3 Apenas entrada.
"Título" cadeia (de caracteres) O título do contacto. Não 3 Apenas entrada.
"Descrição" cadeia (de caracteres) A descrição do contacto. Não 3 Apenas entrada.

Cláusulas WHERE

O formato JSON de definição de ação suporta cláusulas where que podem ser usadas para implementar lógica condicional, como especificar que uma ação deve ser invocada somente quando uma propriedade de entidade tem um valor especificado.

Os operadores a seguir podem ser usados com cláusulas where .

Operador Descrição
== Igualdade
~= Igualdade que não diferencia maiúsculas de minúsculas
!= Desigualdade
< Menos de
<= Menor que ou igual a
> Maior que
>= Maior ou igual a
|| OU Lógico
&& Lógica E

Quando as cláusulas utilizam o seguinte formato:

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

O exemplo a seguir mostra uma cláusula where que é avaliada como true se uma entidade File tiver a extensão de arquivo ".txt".

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

Várias cláusulas WHERE podem ser combinadas usando os operadores lógicos E e OU.

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