Bagikan melalui


WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) Metode

Definisi

Menyediakan konten yang diperbarui untuk widget ke host widget.

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)

Parameter

widgetUpdateRequestOptions
WidgetUpdateRequestOptions

Objek WidgetUpdateRequestOptions yang berisi konten untuk memperbarui widget.

Penerapan

Contoh

Contoh kode berikut menunjukkan penggunaan khas UpdateWidget. WidgetManager.GetWidgetInfos() dipanggil untuk mendapatkan daftar WidgetInfo objek untuk widget aktif yang terkait dengan penyedia widget. Untuk setiap widget, templat visual dan templat data dihasilkan dan diteruskan ke panggilan UpdateWidget di objek WidgetUpdateRequestOptions .

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);
            }
        }
    }
}

Keterangan

Variabel apa pun yang tidak diatur di kelas WidgetUpdateRequestOptions tidak akan diperbarui. Misalnya, jika Anda hanya tertarik untuk memperbarui data widget tetapi Anda ingin menyimpan templat visual dan status kustom yang ada, maka dengan mengatur hanya WidgetUpdateRequestOptions.Data properti , data widget akan diperbarui tetapi templat dan status kustom tidak akan dimodifikasi.

UpdateWidget juga dapat digunakan untuk menghapus nilai yang disimpan dengan mengatur string kosong agar nilai dibersihkan. Misalnya, jika Anda ingin menghapus status kustom widget yang disimpan, Anda dapat mengatur WidgetUpdateRequestOptions.CustomState properti ke string kosong, yang akan menghapus status kustom yang disimpan setelah UpdateWidget dipanggil.

Memanggil fungsi ini untuk memperbarui widget yang telah dihapus, widget yang tidak terkait dengan aplikasi Anda, atau menggunakan ID widget yang tidak ada akan mengakibatkan pembaruan diabaikan.

Berlaku untuk