ウィジェット プロバイダーのパッケージ マニフェスト (XML 形式)

ウィジェット ホストに表示するには、Windows ウィジェットをサポートするアプリでそのウィジェット プロバイダーをシステムに登録する必要があります。 Win32 アプリの場合、現在サポートされているのはパッケージ アプリのみで、ウィジェット プロバイダーはアプリ パッケージ マニフェスト ファイルに登録情報を指定します。 この記事では、ウィジェット登録の XML 形式について説明します。 Win32 ウィジェット プロバイダーのパッケージ マニフェストの例のコード一覧については、「」セクションを参照してください。

アプリの拡張機能

アプリ パッケージ マニフェスト ファイルでは、Windows アプリのさまざまな拡張機能と機能がサポートされています。 アプリケーション パッケージ マニフェストの形式は、パッケージ マニフェスト スキーマ リファレンスに記載されているスキーマのセットによって定義されます。 ウィジェット プロバイダーは、uap3:AppExtension 内で登録情報を宣言します。 拡張機能の Name 属性は、"com.microsoft.windows.widgets" に設定する必要があります。

ウィジェット プロバイダーには、uap3:AppExtension の子として uap3:Properties を含める必要があります。 パッケージ マニフェスト スキーマでは、適切な形式の XML を必要とする以外に、uap3:Properties 要素の構造は適用されません。 この記事の残りの部分では、ウィジェット プロバイダーを正常に登録するためにウィジェット ホストで想定される XML 形式について説明します。

<uap3:Extension Category="windows.appExtension">
  <uap3:AppExtension Name="com.microsoft.windows.widgets" DisplayName="WidgetTestApp" Id="ContosoWidgetApp" PublicFolder="Public">
    <uap3:Properties>
    <!-- Widget provider registration content goes here -->
    </uap3:Properties>
  </uap3:AppExtension>
</uap3:Extension>

要素の階層

WidgetProvider

  ProviderIcons

    アイコン

  ライセンス認証

    CreateInstance

    ActivateApplication

  定義

    定義

      機能

        機能

          サイズ

      ThemeResources

        アイコン

          アイコン

        スクリーンショット

          スクリーンショット

        DarkMode

          アイコン

            アイコン

          スクリーンショット

            スクリーンショット

        LightMode

          アイコン

            アイコン

          スクリーンショット

            スクリーンショット

WidgetProvider

ウィジェット プロバイダー登録情報のルート要素。

ウィジェット ボードの [ウィジェットの追加] ダイアログのスクリーンショット。2 つのエントリの列が表示されます。それぞれにアイコンとアプリ名が付き、ウィジェットを追加できることを示すプラス記号が付いています

WidgetProviderIcons

ウィジェット プロバイダー アプリを表すアイコンを指定します。

ライセンス認証

ウィジェット プロバイダーのアクティブ化情報を指定します。 マニフェストで CreateInstanceActivateApplication の両方が指定されている場合は、CreateInstance が優先されます。

CreateInstance

CreateInstance は、IWidgetProvider インターフェイスを実装する Win32 ベースのウィジェット プロバイダーに指定する必要があります。 システムは、CoCreateInstance の呼び出しでインターフェイスをアクティブ化します。 ClassId 属性は、IWidgetProvider インターフェイスを実装する CreateInstance サーバーの CLSID を指定します。

属性 種類 Required 説明 規定値
ClassId GUID はい ウィジェット プロバイダーを実装する CreateInstance サーバーの CLSID。 該当なし

ActivateApplication

ActivateApplication を指定すると、ウィジェット プロバイダーはコマンド ラインを介してアクティブ化され、引数は base64url でエンコードされた JSON 文字列として指定されます。 ウィジェット プロバイダーは、 CreateInstance アクティブ化の種類を使用することをお勧めします。 ActivateApplication コマンド ライン形式の詳細については、「ウィジェット プロバイダー ActivateApplication プロトコル」を参照してください。

定義

1 つ以上のウィジェット登録のコンテナー要素。

定義

単一ウィジェットの登録を表します。

属性 種類 Required 説明 既定値
Id string はい ウィジェットを特定する ID。 この値は、ウィジェット ピッカーのナビゲーション バーにも表示されます。 ウィジェット プロバイダーの実装では、この文字列を使用して、各操作で参照されるアプリのウィジェットを決定または指定します。 この文字列は、アプリ マニフェスト ファイル内で定義されているすべてのウィジェットに対して一意である必要があります。 該当なし
表示名 string はい ウィジェット ホストに表示されるウィジェットの名前。 該当なし
説明 string はい ウィジェットの簡単な説明。 該当なし
AllowMultiple boolean いいえ このウィジェットのインスタンスが 1 つだけサポートされている場合は false に設定します。 この属性は省略可能で、既定値は true です。 true
IsCustomizable boolean いいえ Windows App SDK 1.4 には導入されていません。 アプリがウィジェットのカスタマイズをサポートしている場合は true に設定します。 これにより、ウィジェットの省略記号メニューに [ウィジェットのカスタマイズ] ボタンが表示されます。 false

機能

省略可能。 単一ウィジェットの機能を指定します。 機能が宣言されていない場合は、"大" サイズを指定する 1 つの機能が既定で追加されます。

機能

ウィジェットの機能を指定します。

サイズ

関連付けられているウィジェットでサポートされているサイズを指定します。

属性 種類 Required 説明 規定値
名前 string はい ウィジェットでサポートされているサイズを指定します。 値は、"小"、"中"、"大" のいずれかである必要があります 該当なし

ThemeResources

ウィジェットのテーマ リソースを指定します。

アイコン

1 つ以上の Icon 要素に対応するコンテナー要素。

アイコン

必須。 ウィジェットの属性領域に表示されるアイコンを指定します。

属性 種類 Required 説明 規定値
Path string はい アイコン イメージ ファイルに対するパッケージ相対パス。 該当なし

スクリーンショット

必須。 ウィジェットの 1 つ以上のスクリーンショットを指定します。

スクリーンショット

必須。 ウィジェットのスクリーンショットを指定します。 このスクリーンショットは、ユーザーがウィジェット ホストに追加するウィジェットを選択しているときに、[ウィジェットの追加] ダイアログのウィジェット ホストに表示されます。 以下に一覧表示したオプションの DarkMode 要素または LightMode 要素のスクリーンショットを指定すると、ウィジェット ホストは現在のデバイス テーマに一致するスクリーンショットを使用します。 現在のデバイス テーマのスクリーンショットを指定しない場合は、この Screenshot 要素で指定されているイメージが使用されます。 スクリーンショットの画像の設計要件とローカライズされたスクリーンショットの名前付け規則については、「ウィジェット ピッカーと統合する」をご覧ください。

Note

ウィジェットのスクリーンショットは、現在のプレビュー リリースのウィジェット ボードの [ウィジェットの追加] ダイアログには表示されません。

属性 種類 Required 説明 規定値
Path string はい スクリーンショット イメージ ファイルに対するパッケージ相対パス。 該当なし
DisplayAltText string いいえ アクセシビリティのためのイメージの代替テキスト。 該当なし

DarkMode

省略可能。 デバイスでダーク モードがアクティブな場合のテーマ リソースを指定します。 オプションの DarkMode 要素で 1 つ以上のスクリーンショット イメージを指定すると、デバイスがダーク モードのときにウィジェット ホストでこれらのスクリーンショットが選択されます。 ダーク モードのイメージを指定しない場合、ウィジェット ホストは、前述の必須の最上位のスクリーンショット要素を使用します。 スクリーンショットの画像の設計要件とローカライズされたスクリーンショットの名前付け規則については、「ウィジェット ピッカーと統合する」をご覧ください。

LightMode

省略可能。 デバイスでライト モードがアクティブな場合のテーマ リソースを指定します。 オプションの DarkMode 要素で 1 つ以上のスクリーンショット イメージを指定すると、デバイスがライト モードのときにウィジェット ホストでこれらのスクリーンショットが選択されます。 ライト モードのイメージを指定しない場合、ウィジェット ホストは、前述の必須の最上位のスクリーンショット要素を使用します。 スクリーンショットの画像の設計要件とローカライズされたスクリーンショットの名前付け規則については、「ウィジェット ピッカーと統合する」をご覧ください。

次のコード例は、ウィジェット パッケージ マニフェスト XML 形式の使用方法を示しています。

<uap3:Extension Category="windows.appExtension">
  <uap3:AppExtension Name="com.microsoft.windows.widgets" DisplayName="Widget Test App" Id="ContosoWidgetApp" PublicFolder="Public">
    <uap3:Properties>
      <WidgetProvider>
        <ProviderIcons>
            <Icon Path="Images\StoreIcon.png" />
        </ProviderIcons>
        <Activation>
          <!-- App exports COM interface which implements IWidgetProvider -->
          <CreateInstance ClassId="XXXXXXXX-XXXX-XXXX-XXXX-D3397A3FF15C" />
        </Activation>
        <Definitions>
          <Definition
            Id="Weather_Widget"
            DisplayName="Microsoft Weather Widget"
            Description="Weather Widget Description"
            AllowMultiple="true">
            <Capabilities>
              <Capability>
                 <Size Name="small" />
              </Capability>
              <Capability>
                 <Size Name="medium" />
              </Capability>
              <Capability>
                 <Size Name="large" />
              </Capability>
            </Capabilities>

            <ThemeResources>
              <Icons>
                <Icon Path="Assets\icon.png" />
                <Icon Path="Assets\icon.gif" />
              </Icons>
              <Screenshots>
                <Screenshot Path="Assets\background.png" DisplayAltText ="For accessibility"/>
              </Screenshots>

              <!-- DarkMode and LightMode are optional -->
              <DarkMode>
                <Icons>
                  <Icon Path="Assets\dark.png" />
                </Icons>
                <Screenshots>
                  <Screenshot Path="Assets\darkBackground.png" DisplayAltText ="For accessibility"/>
                </Screenshots>
              </DarkMode>

              <LightMode>
                <Icons>
                  <Icon Path="Assets\light.png" />
                </Icons>
                <Screenshots>
                  <Screenshot Path="Assets\lightBackground.png"/>
                </Screenshots>
              </LightMode>
            </ThemeResources>
          </Definition>
        </Definitions>
      </WidgetProvider>
    </uap3:Properties>
  </uap3:AppExtension>
</uap3:Extension>