使用應用程式擴充功能的自訂屬性
應用程式擴充功能屬性,是應用程式擴充功能開發人員在其應用程式資訊清單中,提供的自訂中繼資料欄位。 應用程式擴充功能主機可以在檢查應用程式擴充功能時,讀取此中繼資料,而不需要從應用程式擴充功能載入任何內容。
屬性是選用的,但卻是非常有用的功能。 建立應用程式擴充功能主機平台時,您可能需要廣泛的中繼資料,例如版本、功能、支援的檔案類型清單,或在載入應用程式擴充功能之前有助於了解的其他資料。 這類資訊甚至可能會決定您載入應用程式擴充功能的方式。 應用程式擴充功能屬性會提供開放式畫布,以任何最適用於應用程式的方式,確切地定義所需欄位,而不是嘗試預測您可能需要的所有欄位。
應用程式擴充功能屬性的優點
您為何應該利用應用程式擴充功能屬性,有兩個重要的原因:
這是一種既輕鬆又安全的方法,可儲存有關應用程式擴充功能平台的基本或重要中繼資料,而不需要將該資訊放入檔案中。 您可以將其用於像是版本控制、權限和強制執行等重要概念。 例如,您的應用程式可能會堅持定義
version
欄位,並將其呈現在屬性中,而且根據該值具有不同的載入行為。因為資訊是儲存在應用程式資訊清單中,所以未來可以透過 API 為其建立索引並使其可供使用。 這表示,您可以將其突顯給使用者,或將應用程式擴充功能搜尋特定屬性的搜尋範圍更加縮小,而不需要先部署和載入擴充功能。
如何宣告屬性
屬性是在您套件的 Package.appxmanifest.xml 檔案中宣告。 擴充功能主機可在執行階段讀取其做為屬性集。 因為主機會定義平台,所以由主機負責與擴充功能開發人員溝通,以了解哪些屬性可供使用,而且應該放入 AppExtension
宣告中。
注意
Visual Studio 中的資訊清單設計工具不支援定義屬性的功能。 您必須直接編輯 Package.appxmanifest.xml 來定義屬性。
若要宣告屬性,請將其放在 <uap3:AppExtension>
宣告下的 <uap3:Properties/>
元素中。 以下是 Microsoft Edge 的範例 <uap3:AppExtension>
宣告,其使用 Edge 所支援的屬性。
<uap3:AppExtension Name="com.microsoft.edge.extension" Id="FirstExtension" PublicFolder="Extension" DisplayName="MyExtension">
<uap3:Properties>
<Capabilities>
<Capability Name="websiteContent" />
<Capability Name="websiteInfo" />
<Capability Name="browserWebRequest" />
<Capability Name="browserStorage" />
</Capabilities>
</uap3:Properties>
</uap3:AppExtension>
Edge 已定義 Capabilities
的已知屬性值,並列出已宣告的擴充功能。 身為主機,您可以在應用程式擴充功能中支援想要的任何屬性。 由於這些是屬性集,因此您也可以具有巢狀屬性。 有一個根版本屬性,以防您在未來變更擴充功能的格式時可以使用,這是個不錯的主意。 我們刻意不放入 Version
,做為應用程式擴充功能的屬性,因此不會人為地限制您只能使用我們的版本設定語意。 相反地,我們建立了一些屬性,其中版本可以是許多自訂屬性的其中一個,因此您可以對其採用任何想要的方式和格式,以及根據想要的方式進行處理。
如何使用屬性
假設您的應用程式擴充功能中有一個簡單屬性,可描述版本,如下所示。
<uap3:Properties>
<Version>1.0.0.0</Version>
</uap3:Properties>
若要在執行階段取得此資料,只要在應用程式擴充功能上呼叫 GetExtensionPropertiesAsync() 即可。
string extensionVersion = "Unknown";
var properties = await ext.GetExtensionPropertiesAsync() as PropertySet;
if (properties != null)
{
if (properties.ContainsKey("Version"))
{
PropertySet versionProperty = properties["Version"] as PropertySet;
extensionVersion = versionProperty["#text"].ToString();
}
}
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應