Compartilhar via


Esquema JSON de definição de ação para Ações de Aplicativo 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 Build definida como "Conteúdo" e Copiar para 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 Formato XML do manifesto do pacote do provedor de ação.

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

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

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

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

Raiz do documento

Propriedade Tipo Descrição Obrigatório
versão corda Versão do esquema. Quando a nova funcionalidade é adicionada, a versão é incrementada por um. Sim.
Ações Ação[] Define as ações fornecidas pelo aplicativo. Sim.

Ação

Propriedade Tipo Descrição Obrigatório
id corda Identificador de ação. Deve ser exclusivo por pacote de aplicativo. Esse valor não é localizável. Sim
descrição corda Descrição para essa ação voltada para o usuário. Esse valor é localizável. Sim
ícone corda Ícone localizável para a ação. Esse valor é uma string ms-resource para um ícone implementado com o aplicativo. Não
usa IA Generativa Booliano Especifica se a ação usa IA generativa. O valor padrão é false. Não
está disponível Booliano Especifica se a ação está disponível para uso durante a instalação. O valor padrão é true. Sim
entradas Entradas[] Lista de entidades que essa ação aceita como entrada. Sim
combinações de entrada CombinaçãoDeEntrada[] Fornece descrições para diferentes combinações de entradas. Sim
saídas Saída[] Se especificado, deve ser uma cadeia de caracteres vazia na versão atual. Não
invocação Invocação Fornece informações sobre como a ação é invocada. Sim
classificaçãoEtáriaDoConteúdo corda Um nome de campo do UserAgeConsentGroup que especifica a classificação etária apropriada para a ação. Os valores permitidos são "Filho", "Menor", "Adulto". Se nenhum valor for especificado, o comportamento padrão permitirá o acesso a todas as idades. Não

Saída

Propriedade Tipo Descrição Obrigatório
nome corda O nome da variável da entidade. Esse valor não é localizável. Sim
variante corda Um nome de campo da enumeração ActionEntityKind especificando o tipo de entidade. Esse valor não é localizável. Os valores permitidos são "Nenhum", "Documento", "Arquivo", "Foto", "Texto". Sim

Combinação de Entrada

Propriedade Tipo Descrição Obrigatório
entradas cadeia de caracteres[] Uma lista de nomes de entrada para uma invocação de ação. A lista pode estar vazia. Sim
descrição corda Descrição da invocação de ação. Esse valor é localizável. Não
onde cadeia de caracteres[] Uma ou mais instruções condicionais determinando as condições sob as quais a ação se aplica. Não

Invocação

Propriedade Tipo Descrição Obrigatório
tipo corda O tipo de instanciação da ação. Os valores permitidos são "uri" e "com" Sim
URI corda O URI absoluto para iniciar a ação. O uso da entidade pode ser incluído na cadeia de caracteres. Sim, para ações instanciadas por URI.
clsid corda A ID da classe COM que implementa IActionProvider. Sim, para ações COM
dados de entrada Uma lista de pares nome/valor especificando dados adicionais para ações de URI. Não. Somente válido para ações de URI.

Enumeração ActionEntityKind

A enumeração ActionEntityKind especifica os tipos de entidades com suporte das Ações de Aplicativo no Windows. No contexto de uma definição de ação JSON, os tipos de entidade são literais de cadeia de caracteres que diferenciam maiúsculas de minúsculas.

Cadeia de caracteres de tipo de entidade Descrição
"Arquivo" Inclui todos os tipos de arquivo que não possuem suporte por tipos de entidade de documento ou foto.
"Foto" Tipos de arquivo de imagem. As extensões de arquivo de imagem com suporte são ".jpg", ".jpeg" e ".png"
"Documento" Tipos de arquivo de documento. As extensões de arquivo de documento com suporte são ".doc", ".docx", ".pdf", ".txt"
"Texto" Dá suporte a cadeias de caracteres de texto.
StreamingText Dá suporte a cadeias de caracteres de texto transmitidas incrementalmente.
Arquivo Remoto Dá suporte a metadados para habilitar ações para validar e recuperar arquivos de backup de um serviço de nuvem.

Propriedades da entidade

Cada tipo de entidade dá suporte a uma ou mais propriedades que fornecem dados de instância para a entidade. Os nomes de propriedade da entidade diferenciam 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 do 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
Nome do Arquivo corda O nome do arquivo.
"Caminho" corda O caminho do arquivo.
"Extensão" corda A extensão do arquivo.

Propriedades da entidade do documento

A entidade Document dá suporte às mesmas propriedades que o Arquivo.

Propriedades da entidade da foto

A entidade Photo dá suporte a todas as propriedades do Arquivo , além das propriedades a seguir.

Propriedade Tipo Descrição
IsTemporaryPath Booliano 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.

Propriedades da entidade de texto

Propriedade Tipo Descrição
"Texto" corda O texto completo.
Texto Curto corda Uma versão abreviada do texto, adequada para exibição da interface do usuário.
"Título" corda O título do texto.
"Descrição" corda Uma descrição do texto.
"Comprimento" duplo O comprimento do texto em caracteres.
Contagem de Palavras duplo O número de palavras no texto.

Propriedades da entidade StreamingText

Propriedade Tipo Descrição
"TextFormat" corda O formato do texto de streaming. Os valores com suporte são "Texto simples", "Markdown".

Propriedades da entidade RemoteFile

Propriedade Tipo Descrição
IdentificaçãoDaConta corda O identificador da conta de serviço de nuvem associada ao arquivo remoto.
TipoDeConteúdo corda O tipo MIME do arquivo remoto.
"DriveId" corda O identificador da unidade remota associada ao arquivo remoto.
"Extensão" corda A extensão do arquivo remoto.
"FileId" corda O identificador do arquivo remoto.
"FileKind" RemoteFileKind O tipo de arquivo remoto.
IdFonte corda O identificador do serviço de nuvem que hospeda o arquivo remoto.
"SourceUri" corda O URI do arquivo remoto.

Enumeração RemoteFileKind

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

Cadeia de caracteres de tipo de entidade Descrição
"Arquivo" Inclui todos os tipos de arquivo que não possuem suporte por tipos de entidade de documento ou foto.
"Foto" Tipos de arquivo de imagem. As extensões de arquivo de imagem com suporte são ".jpg", ".jpeg" e ".png"
"Documento" Tipos de arquivo de documento. As extensões de arquivo de documento com suporte são ".doc", ".docx", ".pdf", ".txt"

Cláusulas Where

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

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

Operador Descrição
== Igualdade
~= Igualdade que não diferencia maiúsculas e minúsculas
!= Desigualdade
< Menor que
<= Menor que ou igual a
> Maior que
>= Maior ou igual a
|| OR lógico
&& AND lógico

Onde as cláusulas usam 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 em que podem ser combinadas usando os operadores OR lógicos e AND lógicos.

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