Udostępnij przez


Schemat JSON definicji akcji dla akcji aplikacji na systemie Windows

W tym artykule opisano format pliku JSON definicji akcji dla akcji aplikacji w systemie Windows. Ten plik musi być uwzględniony w projekcie z ustawieniem Akcja kompilacji na "Zawartość" i ustawieniem Skopiuj do katalogu wyjściowego na "Kopiuj, jeśli jest nowsza". Określ ścieżkę względną pakietu do pliku JSON w pliku XML manifestu pakietu. Aby uzyskać więcej informacji, zobacz Format XML manifestu pakietu dostawcy akcji.

Przykładowy plik JSON definicji akcji

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

Definicja akcji: właściwości JSON

W poniższych tabelach opisano właściwości pliku JSON definicji akcji.

Pole Wersja wskazuje wersję schematu, w której wprowadzono właściwość.

Pole PWA wskazuje obsługę dostawców akcji implementowanych jako progresywne aplikacje internetowe (PWA). Aby uzyskać więcej informacji na temat akcji aplikacji za pomocą aplikacji PWA, zobacz Włączanie akcji aplikacji w systemie Windows dla programu PWA.

Katalog główny dokumentu

Majątek Typ Opis Wymagane wersja
wersja ciąg Wersja schematu. Po dodaniu nowych funkcji wersja zwiększa się o jeden. Tak. 2
działania Akcja[] Definiuje akcje udostępniane przez aplikację. Tak. 2

Akcja

Majątek Typ Opis Wymagane wersja PWA
id ciąg Identyfikator akcji. Musi być unikatowy dla każdego pakietu aplikacji. Ta wartość nie jest lokalizowalna. Tak 2 Tak
opis ciąg Opis tej akcji dostępny dla użytkownika. Ta wartość jest lokalizowalna. Tak 2 Tak
ikona ciąg Ikona lokalizowalna dla akcji. Ta wartość jest ciągiem ms-resource dla ikony wdrożonej z aplikacją. Nie. 2 Tak
allowedAppInvokers ciąg znakowy[] Określa listę identyfikatorów modelu użytkownika aplikacji (AppUserModelID), które mogą odnaleźć akcję za pomocą wywołania metody GetActionsForInputs lub GetAllActions. Obsługiwane są symbole wieloznaczne. Wartość "*" będzie zgodna ze wszystkimi identyfikatorami AppUserModelID. Jest to zalecane w przypadku większości akcji, chyba że istnieje określona przyczyna ograniczenia elementów wywołujących, które mogą wywołać akcję. Jeśli aplikacja allowedAppInvokers zostanie pominięta lub jest pustą listą, żadne aplikacje nie będą mogły odnaleźć akcji. Aby uzyskać więcej informacji na temat identyfikatorów AppUserModelID, zobacz Identyfikatory modelu użytkownika aplikacji Nie. 3 Tak
używaGeneratywnejSI logiczny Określa, czy akcja wykorzystuje generatywną sztuczną inteligencję. Wartość domyślna to fałsz. Nie. 2 Tak
jestDostępny logiczny Określa, czy akcja jest dostępna do użycia podczas instalacji. Wartość domyślna to true. Tak 2 Tak
Wejścia Dane wejściowe[] Lista jednostek, które ta akcja akceptuje jako dane wejściowe. Tak 2 Tak
kombinacje wejściowe KombinacjaWejściowa[] Zawiera opisy różnych kombinacji danych wejściowych. Tak 2 Tak
Wyniki Dane wyjściowe[] Jeśli zostanie określony, musi być pustym ciągiem w bieżącej wersji. Nie. 2 Tak
wywołanie Wywołanie Zawiera informacje o sposobie wywoływanej akcji. Tak 2 Tak
ocena wiekowa treści ciąg Nazwa pola z UserAgeConsentGroup, określająca odpowiednią klasyfikację wieku dla działania. Dozwolone wartości to "Child", "Minor", "Adult". Jeśli żadna wartość nie zostanie określona, domyślne zachowanie zezwala na dostęp do wszystkich grup wiekowych. Nie. 2 Tak

Wynik

Majątek Typ Opis Wymagane wersja PWA
nazwa ciąg Nazwa zmiennej jednostki. Ta wartość nie jest lokalizowalna. Tak 2 Tak
rodzaj ciąg Nazwa pola z wyliczenia ActionEntityKind określająca typ jednostki. Ta wartość nie jest lokalizowalna. Dozwolone wartości to "None", "Document", "File", "Photo", "Text", "StreamingText", "RemoteFile", "Table", "Contact". Tak 2 Tak

Wersja schematu i obsługa programu PWA różnią się w zależności od wartości właściwości kind. Aby uzyskać szczegółowe informacje, zobacz wpis dla każdego typu jednostki.

Kombinacja wejściowa

Majątek Typ Opis Wymagane wersja PWA
Wejścia ciąg znakowy[] Lista nazw danych wejściowych dla wywołania akcji. Lista może być pusta. Tak 2 Tak
opis ciąg Opis wywołania akcji. Ta wartość jest lokalizowalna. Nie. 2 Tak
gdzie ciąg znakowy[] Co najmniej jedna instrukcja warunkowa określająca warunki, w których ma zastosowanie działanie. Nie. 2 Tak

Wywołanie

Majątek Typ Opis Wymagane wersja PWA
typ ciąg Typ wystąpienia akcji. Dozwolone wartości to "URI" i "com". Tak 2 Tylko "URI".
URI ciąg Bezwzględny identyfikator URI do wywoływania akcji. Użycie encji można uwzględnić w tekście. Do identyfikatora URI można dodać specjalny parametr ciągu zapytania zarezerwowanego, token=${$.Token} aby umożliwić wykonywanie akcji w celu sprawdzenia, czy zostały one wywołane przez środowisko uruchomieniowe akcji. Aby uzyskać więcej informacji, zobacz Używanie $. Parametr ciągu zapytania identyfikatora URI tokenu. Tak, dla zainicjowanych akcji identyfikatora URI. 2 Tak
clsid ciąg Identyfikator klasy dla klasy COM, która implementuje IActionProvider. Tak, w przypadku akcji COM. 2 Nie.
dane wejściowe Pary nazw/wartości JSON Lista par nazwa-wartość określająca dodatkowe dane dla działań URI. Nie. Ważne tylko dla działań URI. 2 Tak

Wyliczenie typu ActionEntityKind

Wyliczenie ActionEntityKind określa typy jednostek obsługiwanych przez akcje aplikacji w systemie Windows. W kontekście definicji akcji JSON rodzaje jednostek są literałami ciągu, które rozróżniają wielkość liter.

Łańcuch znaków rodzaju jednostki Opis wersja PWA
"Plik" Zawiera wszystkie typy plików, które nie są obsługiwane przez typy jednostek zdjęć ani dokumentów. 2 Tylko dane wejściowe.
"Zdjęcie" Typy plików obrazów. Obsługiwane rozszerzenia plików obrazów to ".jpg", ".jpeg" i ".png" 2 Tylko dane wejściowe.
"Dokument" Typy plików dokumentów. Obsługiwane rozszerzenia plików dokumentów to ".doc", ".docx", ".pdf", ".txt" 2 Tylko dane wejściowe.
"Tekst" Obsługuje ciągi tekstu. 2 Tylko dane wejściowe.
StreamingText Obsługuje przyrostowo przesyłane strumieniowo ciągi tekstu. 2 Nieprawda
RemoteFile Obsługuje metadane w celu umożliwienia akcji weryfikowania i pobierania plików zapasowych z usługi w chmurze. 2 Tylko dane wejściowe.
Tabela Tabela 2D wartości ciągów, która jest serializowana do 1-wymiarowej tablicy ciągów. 3 Nie.
"Kontakt" Zestaw danych reprezentujący kontakt. 3 Tylko dane wejściowe.

Właściwości jednostki

Każdy typ jednostki obsługuje co najmniej jedną właściwość, która udostępnia dane instancji dla jednostki. W nazwach właściwości jednostki jest rozróżniana wielkość liter.

Poniższy przykład ilustruje sposób odwoływania się do elementów w ciągu zapytania dla akcji uruchamianych za pośrednictwem aktywacji URI.

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

Aby uzyskać informacje na temat używania właściwości obiektu do tworzenia sekcji warunkowych w JSON definicji akcji, zobacz klauzule Where.

Właściwości jednostki pliku

Majątek Typ Opis wersja PWA
NazwaPliku ciąg Nazwa pliku. 2 Tylko dane wejściowe.
"Ścieżka" ciąg Ścieżka pliku. 2 Tylko dane wejściowe.
"Rozszerzenie" ciąg Rozszerzenie pliku. 2 Tylko dane wejściowe.

Właściwości jednostki dokumentu

Jednostka Document obsługuje te same właściwości co Plik.

Właściwości obiektu zdjęcia

Jednostka Zdjęcie obsługuje wszystkie właściwości pliku oprócz następujących właściwości.

Majątek Typ Opis wersja PWA
IsTemporaryPath logiczny Wartość określająca, czy zdjęcie jest przechowywane w ścieżce tymczasowej. Na przykład ta właściwość jest prawdziwa w przypadku zdjęć przechowywanych w pamięci z mapy bitowej, a nie przechowywanych trwale w pliku. 2 Tylko dane wejściowe.

Właściwości jednostki tekstowej

Majątek Typ Opis wersja PWA
"Tekst" ciąg Pełny tekst. 2 Tylko dane wejściowe.
"Krótki tekst" ciąg Skrócona wersja tekstu, odpowiednia do wyświetlania interfejsu użytkownika. 2 Tylko dane wejściowe.
"Tytuł" ciąg Tytuł tekstu. 2 Tylko dane wejściowe.
Opis ciąg Opis tekstu. 2 Tylko dane wejściowe.
"Długość" podwójny Długość tekstu w znakach. 2 Tylko dane wejściowe.
Licznik Słów podwójny Liczba wyrazów w tekście. 2 Tylko dane wejściowe.

Właściwości jednostki StreamingText

Majątek Typ Opis wersja PWA
"TextFormat" ciąg Format tekstu przesyłanego strumieniowo. Obsługiwane wartości to "Plain", "Markdown". 2 Nie.

Właściwości jednostki RemoteFile

Majątek Typ Opis wersja PWA
IdentyfikatorKonta ciąg Identyfikator konta usługi w chmurze skojarzonego z plikiem zdalnym. 2 Tylko dane wejściowe.
Typ zawartości ciąg Typ MIME pliku zdalnego. 2 Tylko dane wejściowe.
"DriveId" ciąg Identyfikator dysku zdalnego skojarzonego z plikiem zdalnym. 2 Tylko dane wejściowe.
"Rozszerzenie" ciąg Rozszerzenie pliku zdalnego. 2 Tylko dane wejściowe.
"FileId" ciąg Identyfikator pliku zdalnego. 2 Tylko dane wejściowe.
"FileKind" RemoteFileKind Rodzaj pliku zdalnego. 2 Tylko dane wejściowe.
"IdentyfikatorŹródła" ciąg Identyfikator usługi w chmurze, która hostuje plik zdalny. 2 Tylko dane wejściowe.
"SourceUri" ciąg URI pliku zdalnego. 2 Tylko dane wejściowe.

RemoteFileKind, wyliczenie

Wyliczenie RemoteFileKind określa typy plików obsługiwanych dla jednostki RemoteFile .

Łańcuch znaków rodzaju jednostki Opis wersja
"Plik" Zawiera wszystkie typy plików, które nie są obsługiwane przez typy jednostek zdjęć ani dokumentów. 2
"Zdjęcie" Typy plików obrazów. Obsługiwane rozszerzenia plików obrazów to ".jpg", ".jpeg" i ".png" 2
"Dokument" Typy plików dokumentów. Obsługiwane rozszerzenia plików dokumentów to ".doc", ".docx", ".pdf", ".txt" 2

Właściwości obiektu tabeli

Majątek Typ Opis Wymagane wersja PWA
"RowCount" liczba całkowita Liczba wierszy w tabeli. Tak 3 Nie.
LiczbaKolumn liczba całkowita Liczba kolumn w tabeli. Tak 3 Nie.
"Tytuł" ciąg Tytuł tabeli. Nie. 3 Nie.
Opis ciąg Opis tabeli. Nie. 3 Nie.

Właściwości podmiotu kontaktu

Majątek Typ Opis Wymagane wersja PWA
"Adres e-mail" ciąg Adres e-mail kontaktu. Nie. 3 Tylko dane wejściowe.
PełnaNazwa liczba całkowita Pełna nazwa kontaktu. Nie. 3 Tylko dane wejściowe.
"Tytuł" ciąg Tytuł kontaktu. Nie. 3 Tylko dane wejściowe.
Opis ciąg Opis kontaktu. Nie. 3 Tylko dane wejściowe.

Klauzule warunków

Format JSON definicji akcji obsługuje klauzule , które mogą służyć do implementowania logiki warunkowej, takie jak określanie, że akcja powinna być wywoływana tylko wtedy, gdy właściwość jednostki ma określoną wartość.

Następujące operatory mogą być używane z klauzulami where .

Obsługujący Opis
== Równość
~= Równość bez uwzględniania wielkości liter
!= Nierówność
< Mniejsze niż
<= Mniej lub równe
> Większe niż
>= Większe niż lub równe
|| Alternatywa logiczna
&& Logiczne AND

Klauzule Where używają następującego formatu:

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

W poniższym przykładzie przedstawiono klauzulę where , która daje wartość true, jeśli jednostka File ma rozszerzenie pliku ".txt".

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

Wiele klauzul where można łączyć przy użyciu operatorów logicznych AND i logicznych OR.

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