次の方法で共有


WidgetManager.GetWidgetInfos メソッド

定義

呼び出し元アプリに関連付けられているすべてのウィジェットの格納された情報を取得します。

public:
 virtual Platform::Array <WidgetInfo ^> ^ GetWidgetInfos() = GetWidgetInfos;
winrt::array_view <WidgetInfo const&> GetWidgetInfos();
public WidgetInfo[] GetWidgetInfos();
function getWidgetInfos()
Public Function GetWidgetInfos () As WidgetInfo()

戻り値

関連付けられたウィジェットに WidgetInfo 関する情報を含む オブジェクトの配列。

実装

次のコード例では、呼び出し元アプリが所有するすべてのウィジェットの情報を取得する方法を示します。 次の使用例は、1 日以上更新されていないウィジェットを更新します。

using namespace std;
using namespace winrt;
using namespace Windows::Foundations;
using namespace Microsoft::Windows::Widgets;
using namespace Microsoft::Windows::Widgets::Providers;

class WidgetManagerOperations
{
    void UpdateWidgetsWith24HourOutdate()
    {
        com_array<WidgetInfo> widgetInfos = WidgetManager::GetDefault().GetWidgetInfos();

        for (const auto widgetInfo : widgetInfos)
        {
            if (widgetInfo.WidgetContext().DefinitionName() == L"clockWidget")
            {
                auto diffInSeconds = static_cast<long long int>(clock::to_time_t(end), clock::to_time_t(beginning));
                auto diffInDays = (((diffInSeconds / 60) / 60) / 24);

                if (diffInDays >= 1)
                {
                    WidgetUpdateRequestOptions options{widgetInfo.WidgetContext().Id()};
                    options.Template(LR"({
                        "type": "AdaptiveCard",
                        "version": "1.5",
                        "body": [
                            {
                                "type": "TextBlock",
                                "text": "Today is: ${date}"
                            }
                        ]
                    })");

                    options.Data(LR"({
                        "date": "05-23-2022"
                    })");

                    widgetManager.UpdateWidget(options);
                }
            }
        }
    }
}

適用対象