Freigeben über


JSON-Schema der Aktionsdefinition für App-Aktionen unter Windows

In diesem Artikel wird das Format des JSON-Dateiformats der Aktionsdefinition für App-Aktionen unter Windows beschrieben. Diese Datei muss in Ihrem Projekt enthalten sein. Die Buildaktion muss auf „Inhalt“ festgelegt sein, und In Ausgabeverzeichnis kopieren muss auf „Kopieren, wenn neuer“ festgelegt sein. Geben Sie den paketrelativen Pfad zur JSON-Datei in der XML-Paketmanifestdatei an. Weitere Informationen finden Sie im XML-Format des Paketmanifests des Aktionsanbieters.

JSON-Beispieldatei der Aktionsdefinition

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

JSON-Eigenschaften der Aktionsdefinition

In den folgenden Tabellen werden die Eigenschaften der JSON-Datei der Aktionsdefinition beschrieben.

Dokumentstamm

Eigentum Typ BESCHREIBUNG Erforderlich
Ausgabe Schnur Schemaversion. Wenn neue Funktionen hinzugefügt wurden, erhöht sich die Version um eine. Ja.
Handlungen Aktion[] Definiert die von der App bereitgestellten Aktionen. Ja.

Maßnahme

Eigentum Typ BESCHREIBUNG Erforderlich
id Schnur Aktionskennzeichen Muss pro Anwendungspaket einzigartig sein. Dieser Wert ist nicht lokalisierbar. Ja
Beschreibung Schnur Benutzerbezogene Beschreibung für diese Aktion. Dieser Wert ist lokalisierbar. Ja
Ikone Schnur Lokalisierbares Symbol für die Aktion. Dieser Wert ist eine ms-resource-Zeichenfolge für ein symbol, das mit der App bereitgestellt wird. Nein
verwendet Generative KI Boolescher Typ (Boolean) Gibt an, ob die Aktion generative KI verwendet. Der Standardwert ist "false". Nein
istVerfügbar Boolescher Typ (Boolean) Gibt an, ob die Aktion bei der Installation zur Verwendung verfügbar ist. Der Standardwert ist true. Ja
Eingaben Eingaben[] Liste der Entitäten, die diese Aktion als Eingabe akzeptiert. Ja
Eingabekombinationen Eingabekombination[] Stellt Beschreibungen für verschiedene Kombinationen von Eingaben bereit. Ja
Ergebnisse Ausgabe[] Wenn angegeben, muss es sich um eine leere Zeichenfolge in der aktuellen Version handeln. Nein
Aufruf Aufruf Enthält Informationen dazu, wie die Aktion aufgerufen wird. Ja
Inhaltsaltersfreigabe Schnur Ein Feldname aus der UserAgeConsentGroup , der die entsprechende Altersfreigabe für die Aktion angibt. Die zulässigen Werte sind "Child", "Minor", "Adult". Wenn kein Wert angegeben ist, ermöglicht das Standardverhalten den Zugriff auf alle Altersgruppen. Nein

Ausgabe

Eigentum Typ BESCHREIBUNG Erforderlich
Name Schnur Der Variablename der Entität. Dieser Wert ist nicht lokalisierbar. Ja
freundlich Schnur Ein Feldname aus der ActionEntityKind-Aufzählung , die den Entitätstyp angibt. Dieser Wert ist nicht lokalisierbar. Die zulässigen Werte sind "None", "Document", "File", "Photo", "Text". Ja

Eingabekombination

Eigentum Typ BESCHREIBUNG Erforderlich
Eingaben Zeichenfolge[] Eine Liste der Eingabenamen für einen Aktionsaufruf. Die Liste ist möglicherweise leer. Ja
Beschreibung Schnur Beschreibung für den Aufruf der Aktion. Dieser Wert ist lokalisierbar. Nein
Hierbei gilt: Zeichenfolge[] Eine oder mehrere bedingte Anweisungen, die die Bedingungen bestimmen, unter denen die Aktion gilt. Nein

Aufruf

Eigentum Typ BESCHREIBUNG Erforderlich
Typ Schnur Der Instanziierungstyp für die Aktion. Die zulässigen Werte sind "uri" und "com" Ja
URI Schnur Der absolute URI zum Starten der Aktion. Die Entitätsnutzung kann in der Zeichenfolge enthalten sein. Ja, für instanziierte URI-Aktionen.
clsid Schnur Die Klassen-ID für die COM-Klasse, die IActionProvider implementiert. Ja, für COM-Aktionen
Eingabedaten Eine Liste mit Namen-Wert-Paaren, die zusätzliche Daten für URI-Aktionen angeben. Nein. Nur gültig für URI-Aktionen.

ActionEntityKind-Enumeration

Die ActionEntityKind-Aufzählung gibt die Typen von Entitäten an, die von App-Aktionen unter Windows unterstützt werden. Im Kontext einer JSON-Aktionsdefinition sind die Entitätstypen Zeichenfolgenliterale, bei denen die Groß-/Kleinschreibung beachtet wird.

Zeichenfolge für Entitätstyp BESCHREIBUNG
"Datei" Enthält alle Dateitypen, die von Foto- oder Dokumententitätstypen nicht unterstützt werden.
"Foto" Bilddateitypen. Unterstützte Bilddateierweiterungen sind ".jpg", ".jpeg" und ".png"
"Dokument" Dokumentdateitypen. Unterstützte Dokumentdateierweiterungen sind ".doc", ".docx", ".pdf", ".txt"
„Text“ Unterstützt Textzeichenfolgen.
StreamingText Unterstützt schrittweise gestreamte Textdatenströme.
"RemoteFile" Unterstützt Metadaten, um Aktionen zum Überprüfen und Abrufen von Sicherungsdateien aus einem Clouddienst zu ermöglichen.

Entitätseigenschaften

Jeder Entitätstyp unterstützt eine oder mehrere Eigenschaften, die Instanzdaten für die Entität bereitstellen. Bei den Namen der Entitätseigenschaften wird zwischen Groß- und Kleinschreibung unterschieden.

Das folgende Beispiel veranschaulicht, wie Entitäten in der Abfragezeichenfolge für Aktionen referenziert werden, die über die URI-Aktivierung gestartet werden:

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

Informationen zum Verwenden von Entitätseigenschaften zum Erstellen von bedingten Abschnitten im JSON-Code der Aktionsdefinition finden Sie unter Where-Klauseln.

Entitätseigenschaften für Datei

Eigentum Typ BESCHREIBUNG
Dateiname Schnur Der Name der Datei.
"Pfad" Schnur Der Pfad der Datei.
"Erweiterung" Schnur Die Erweiterung der Datei.

Eigenschaften der Dokumententität

Die Dokumententität unterstützt dieselben Eigenschaften wie "File".

Eigenschaften der Fotoentität

Die Photo-Entität unterstützt zusätzlich zu den folgenden Eigenschaften alle Eigenschaften von File .

Eigentum Typ BESCHREIBUNG
IsTemporärerPfad Boolescher Typ (Boolean) Ein Wert, der angibt, ob das Foto in einem temporären Pfad gespeichert ist. Diese Eigenschaft gilt beispielsweise für Fotos, die aus einer Bitmap im Speicher gespeichert sind und nicht dauerhaft in einer Datei gespeichert sind.

Eigenschaften der Textentität

Eigentum Typ BESCHREIBUNG
„Text“ Schnur Der vollständige Text.
Kurzer Text Schnur Eine verkürzte Version des Texts, die für die Ui-Anzeige geeignet ist.
"Titel" Schnur Der Titel des Texts.
„Beschreibung“ Schnur Eine Beschreibung des Texts.
"Länge" doppelt Die Länge des Texts in Zeichen.
Wortanzahl doppelt Die Anzahl der Wörter im Text.

StreamingText-Entitätseigenschaften

Eigentum Typ BESCHREIBUNG
"TextFormat" Schnur Das Format des Streamingtexts. Unterstützte Werte sind "Plain", "Markdown".

Eigenschaften der RemoteFile-Entität

Eigentum Typ BESCHREIBUNG
Konto-ID Schnur Der Bezeichner des Clouddienstkontos, das der Remotedatei zugeordnet ist.
Inhaltstyp Schnur Der MIME-Typ der Remotedatei.
"DriveId" Schnur Der Bezeichner für das Remotelaufwerk, das der Remotedatei zugeordnet ist.
"Erweiterung" Schnur Die Erweiterung der Remotedatei.
Datei-ID Schnur Der Bezeichner der Remotedatei.
"FileKind" RemoteFileKind Der Typ der entfernten Datei.
Quellen-ID Schnur Der Bezeichner des Clouddiensts, der die Remotedatei hosten soll.
"SourceUri" Schnur Der URI der Ferndatei.

RemoteFileKind-Aufzählung

Die RemoteFileKind-Aufzählung gibt die Dateitypen an, die für die RemoteFile-Entität unterstützt werden.

Zeichenfolge für Entitätstyp BESCHREIBUNG
"Datei" Enthält alle Dateitypen, die von Foto- oder Dokumententitätstypen nicht unterstützt werden.
"Foto" Bilddateitypen. Unterstützte Bilddateierweiterungen sind ".jpg", ".jpeg" und ".png"
"Dokument" Dokumentdateitypen. Unterstützte Dokumentdateierweiterungen sind ".doc", ".docx", ".pdf", ".txt"

Where-Klauseln

Das JSON-Format der Aktionsdefinition unterstützt , wo Klauseln verwendet werden können, mit denen bedingte Logik implementiert werden kann, z. B. die Angabe, dass eine Aktion nur aufgerufen werden soll, wenn eine Entitätseigenschaft einen angegebenen Wert aufweist.

Die folgenden Operatoren können mit WHERE-Klauseln verwendet werden.

Bediener BESCHREIBUNG
== Gleichheit
~= Gleichheit ohne Berücksichtigung der Groß-/Kleinschreibung
!= Ungleichheit
< Kleiner als
<= Kleiner als oder gleich
> Größer als
>= Größer oder gleich
|| Logisches OR
&& Logisches AND

Dabei verwenden Klauseln das folgende Format:

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

Das folgende Beispiel zeigt eine Where-Klausel, die als „wahr“ ausgewertet wird, wenn eine File-Entität die Dateierweiterung „.txt“ aufweist.

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

Mehrere WHERE-Bedingungen können mit den logischen Und- und Oder-Operatoren kombiniert werden.

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