WidgetManager.GetWidgetInfos 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取与调用应用关联的所有小组件的存储信息。
public:
virtual Platform::Array <WidgetInfo ^> ^ GetWidgetInfos() = GetWidgetInfos;
winrt::array_view <WidgetInfo const&> GetWidgetInfos();
public WidgetInfo[] GetWidgetInfos();
function getWidgetInfos()
Public Function GetWidgetInfos () As WidgetInfo()
返回
包含有关关联小组件的信息的对象数组 WidgetInfo 。
实现
示例
下面的代码示例演示如何检索调用应用拥有的所有小组件的信息。 此示例更新一天或更长时间内未更新的任何小组件。
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);
}
}
}
}
}