Share via


WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) 메서드

정의

위젯 호스트에 위젯에 대한 업데이트된 콘텐츠를 제공합니다.

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를 사용하면 업데이트가 무시됩니다.

적용 대상