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의 일반적인 사용을 보여 줍니다. WidgetManager.GetWidgetInfos() 는 위젯 공급자와 연결된 활성 위젯의 개체 목록을 WidgetInfo 가져오기 위해 호출됩니다. 각 위젯에 대해 시각적 템플릿 및 데이터 템플릿이 생성되어 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 클래스에 설정되지 않은 변수는 업데이트되지 않습니다. 예를 들어 위젯의 데이터 업데이트에만 관심이 있지만 기존 시각적 템플릿 및 사용자 지정 상태를 유지하려는 경우 속성만 WidgetUpdateRequestOptions.Data 설정하면 위젯의 데이터가 업데이트되지만 템플릿 및 사용자 지정 상태는 수정되지 않습니다.
UpdateWidget 을 사용하여 값을 지울 빈 문자열을 설정하여 저장된 값을 지울 수도 있습니다. 예를 들어 위젯의 저장된 사용자 지정 상태를 지우려면 속성을 빈 문자열로 설정 WidgetUpdateRequestOptions.CustomState 하면 UpdateWidget이 호출되면 저장된 사용자 지정 상태가 지워집니다.
이 함수를 호출하여 삭제된 위젯을 업데이트하거나, 앱과 연결되지 않거나, 존재하지 않는 위젯 ID를 사용하면 업데이트가 무시됩니다.