共用方式為


小工具提供者封裝資訊清單 XML 格式

為了能出現在小工具主控區中,支援 Windows 小工具的應用程式必須向系統註冊其小工具提供者。 針對 Win32 應用程式,目前僅支援已封裝的應用程式,小工具提供者會在應用程式套件資訊清單檔案中指定其註冊資訊。 本文記載小工具註冊的 XML 格式。 如需 Win32 小工具提供者範例套件資訊清單的程式碼清單,請參閱範例一節。

應用程式延伸模組

應用程式套件資訊清單檔案支援 Windows 應用程式的許多不同延伸模組與功能。 應用程式套件資訊清單格式是由一組架構所定義,記載於套件資訊清單的結構描述參考。 小工具提供者會在 uap3:AppExtension 中宣告其註冊資訊。 延伸模組的 Name 屬性必須設定為 "com.microsoft.windows.widgets"。

小工具提供者應該包含 uap3:Properties 做為 uap3:AppExtension 的子系。 套件資訊清單架構不會強制執行 uap3:Properties 元素的結構,只會要求格式正確的 XML。 本文的其餘部分說明小工具主控區預期的 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

    Icon

  啟用

    CreateInstance

    ActivateApplication

  定義

    定義

      Capabilities

        功能

          大小

      ThemeResources

        圖示

          Icon

        螢幕擷取畫面

          Screenshot

        DarkMode

          圖示

            Icon

          螢幕擷取畫面

            Screenshot

        LightMode

          圖示

            Icon

          螢幕擷取畫面

            Screenshot

WidgetProvider

小工具提供者註冊資訊的根元素。

A screenshot of the Add Widget dialog in the Widgets board. It shows two columns of entries, each with an icon and an app name, with a plus sign indicating that a widget can be added

WidgetProviderIcons

指定圖示來代表小工具提供者的應用程式。

啟用

指定小工具提供者的啟用資訊。 如果在資訊清單中同時指定 CreateInstanceActivateApplication,則會優先使用 CreateInstance

CreateInstance

CreateInstance 應指定給實作 IWidgetProvider 介面的 Win32 小工具提供者。 系統會透過呼叫 CoCreateInstance 來啟動介面。 ClassId 屬性會針對實作 IWidgetProvider 介面的 CreateInstance 伺服器指定 CLSID

屬性 類型 必要 描述 預設值
ClassId GUID Yes 實作小工具提供者之 CreateInstance 伺服器的 CLSID。 N/A

ActivateApplication

指定 ActivateApplication 時,小工具提供者會透過命令列啟動,並使用以 base64url 編碼 JSON 字串格式提供的引數。 建議小工具提供者使用 CreateInstance 啟用類型。 如需 ActivateApplication 命令列格式的詳細資訊,請參閱小工具提供者 ActivateApplication 通訊協定

定義

一個或多個小工具註冊的容器元素。

定義

表示單一小工具的註冊。

屬性 類型 必要 描述 預設值
Id string Yes 可識別小工具的識別碼。 這個值也會顯示在小工具選擇器的導覽列中。 小工具提供者的實作會使用此字串,來判斷或指定每個作業所參考的應用程式小工具。 對於應用程式資訊清單檔案內定義的所有小工具,此字串必須是唯一的。 N/A
DisplayName string Yes 小工具主控區上顯示的小工具名稱。 N/A
說明 string Yes 小工具的簡短描述。 N/A
AllowMultiple boolean No 如果只支援此小工具的一個執行個體,則設定為 false。 這是選用屬性,預設值為 true。 true
IsCustomizable boolean No Windows 應用程式 SDK 1.4 中引進。 如果您的應用程式支援小工具自訂功能,請設定為 true。 這會導致 [自訂小工具 ] 按鈕出現在小工具的省略符號功能表中。 false

功能

選擇性。 指定單一小工具的功能。 如果未宣告任何功能,預設會新增一個指定尺寸 "large" 的功能。

功能

指定小工具的功能。

大小

指定相關聯小工具的支援尺寸。

屬性 類型 必要 描述 預設值
名稱 字串 Yes 指定小工具的支援尺寸。 此值必須是下列其中一項:"small"、"medium"、"large" N/A

ThemeResources

指定小工具的主題資源。

圖示

一個或多個 Icon 元素的容器元素。

Icon

必要。 指定小工具屬性區中顯示的圖示。

屬性 類型 必要 描述 預設值
路徑 string Yes 圖示影像檔案的套件相對路徑。 N/A

螢幕擷取畫面

必要。 指定一個或多個小工具的螢幕擷取畫面。

Screenshot

必要。 指定小工具的螢幕擷取畫面。 當使用者選取要新增至小工具主控區的小工具時,此螢幕擷取畫面會顯示在小工具主控區的 [新增 Widget] 對話方塊中。 如果您提供下列選用 DarkModeLightMode 元素的螢幕擷取畫面,則小工具主控區將會使用符合目前裝置主題的螢幕擷取畫面。 如果您未提供目前裝置主題的螢幕擷取畫面,則會使用此 Screenshot 元素中提供的影像。 如需螢幕擷取畫面影像的設計需求,以及當地語系化螢幕擷取畫面命名慣例的相關資訊,請參閱整合小工具選擇器

注意

在目前預覽版本,小工具面板的新增小工具對話方塊中,不會顯示小工具螢幕擷取畫面。

屬性 類型 必要 描述 預設值
路徑 string Yes 螢幕擷取畫面影像檔案的套件相對路徑。 N/A
DisplayAltText string No 影像的替代文字,用於協助工具。 N/A

DarkMode

選擇性。 指定對應裝置啟用深色模式時的主題資源。 如果您在選用的 DarkMode 元素中指定一個或多個螢幕擷取畫面影像,當裝置處於深色模式時,小工具主控區將會選取這些螢幕擷取畫面。 如果您沒有提供深色模式影像,小工具主控區會使用上述必要的最上層 Screenshot 元素。 如需螢幕擷取畫面影像的設計需求,以及當地語系化螢幕擷取畫面命名慣例的相關資訊,請參閱整合小工具選擇器

LightMode

選擇性。 指定對應裝置啟用淺色模式時的主題資源。 如果您在選用的 LightMode 元素中提供一個或多個螢幕擷取畫面影像,當裝置處於淺色模式時,小工具主控區將會選取這些螢幕擷取畫面。 如果您沒有提供淺色模式影像,小工具主控區會使用上述必要的最上層 Screenshot 元素。 如需螢幕擷取畫面影像的設計需求,以及當地語系化螢幕擷取畫面命名慣例的相關資訊,請參閱整合小工具選擇器

範例

下列程式碼範例說明小工具套件資訊清單 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>