WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供小工具的更新內容給小工具主機。
public:
virtual void UpdateWidget(WidgetUpdateRequestOptions ^ widgetUpdateRequestOptions) = UpdateWidget;
void UpdateWidget(WidgetUpdateRequestOptions const& widgetUpdateRequestOptions);
public void UpdateWidget(WidgetUpdateRequestOptions widgetUpdateRequestOptions);
function updateWidget(widgetUpdateRequestOptions)
Public Sub UpdateWidget (widgetUpdateRequestOptions As WidgetUpdateRequestOptions)
參數
- widgetUpdateRequestOptions
- WidgetUpdateRequestOptions
WidgetUpdateRequestOptions 物件,其中包含要用來更新小工具的內容。
實作
範例
下列程式代碼範例示範 UpdateWidget的一般用法。
using namespace winrt;
using namespace Microsoft::Windows::Widgets;
using namespace Microsoft::Windows::Widgets::Providers;
class WidgetManagerOperations
{
void InitializeWidgets(hstring myWidgetId)
{
WidgetManager widgetManager = WidgetManager::GetDefault();
com_array<WidgetInfo> widgetInfos = widgetManager.GetWidgetInfos();
for (const auto& widgetInfo : widgetInfos)
{
if (widgetInfo.WidgetContext().IsActive())
{
WidgetUpdateRequestOptions options{myWidgetId};
options.Template(LR"({
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "${greeting}"
}
]
})");
options.Data(LR"({
"greeting": "Hello"
})");
widgetManager.UpdateWidget(options);
}
}
}
}
備註
不會更新 WidgetUpdateRequestOptions 類別中未設定的任何變數。 例如,如果您只想要更新小工具的數據,但您想要保留現有的可視化範本和自定義狀態,則只要設定 Microsoft.Windows.Widgets.Providers.WidgetUpdateRequestOptions.Data 屬性,小工具的數據將會更新,但不會修改範本和自定義狀態。
UpdateWidget 也可以藉由設定要清除值的空字串來清除任何預存值。 例如,如果您想要清除小工具儲存的自定義狀態,您可以將 Microsoft.Windows.Widgets.Providers.WidgetUpdateRequestOptions.CustomState 屬性設定為空字符串,一旦呼叫 UpdateWidget,就會清除儲存的自定義狀態。
呼叫此函式來更新已刪除的 Widget、未與您的應用程式相關聯的小工具,或使用不存在的小工具標識碼會導致忽略更新。