Senden einer lokalen Popupbenachrichtigung von anderen Typen von nicht gepackten Apps
Dieses Thema ist für Sie geeignet, wenn Sie eine nicht gepackte App entwickeln, die nicht C# oder C++ ist.
Das heißt, wenn Sie keine gepackte App entwickeln (siehe Erstellen eines neuen Projekts für eine gepackte WinUI 3-Desktop-App), und Sie keine gepackte App mit externem Speicherort entwickeln (siehe Erteilen der Paketidentität durch Packen mit externem Speicherort), und Ihre App ist nicht C# oder C++.
Eine Popupbenachrichtigung ist eine Nachricht, die eine App erstellen und an den Benutzer übermitteln kann, während der Benutzer Ihre App derzeit nicht verwendet. In dieser Schnellstartanleitung werden die Schritte zum Erstellen, Übermitteln und Anzeigen einer Windows-Popupbenachrichtigung erläutert. In dieser Schnellstartanleitung werden lokale Benachrichtigungen verwendet, die die einfachste zu implementierende Benachrichtigung sind.
Wichtig
Wenn Sie eine C#-App schreiben, lesen Sie die C#-Dokumentation. Wenn Sie eine C++-App schreiben, lesen Sie die Dokumentation zu C++-UWP oder C++-WRL .
Schritt 1: Registrieren Ihrer App in der Registrierung
Sie müssen zunächst die Informationen Ihrer App in der Registrierung registrieren, einschließlich einer eindeutigen AUMID, die Ihre App identifiziert, den Anzeigenamen Ihrer App, Ihr Symbol und die GUID eines COM-Aktivators.
<registryKey keyName="HKEY_LOCAL_MACHINE\Software\Classes\AppUserModelId\<YOUR_AUMID>">
<registryValue
name="DisplayName"
value="My App"
valueType="REG_EXPAND_SZ" />
<registryValue
name="IconUri"
value="C:\icon.png"
valueType="REG_EXPAND_SZ" />
<registryValue
name="IconBackgroundColor"
value="AARRGGBB"
valueType="REG_SZ" />
<registryValue
name="CustomActivator"
value="{YOUR COM ACTIVATOR GUID HERE}"
valueType="REG_SZ" />
</registryKey>
Schritt 2: Einrichten des COM-Aktivators
Auf Benachrichtigungen kann jederzeit geklickt werden, auch wenn Ihre App nicht ausgeführt wird. Daher erfolgt die Aktivierung von Benachrichtigungen über einen COM-Aktivator. Ihre COM-Klasse muss die INotificationActivationCallback
-Schnittstelle implementieren. Die GUID für Ihre COM-Klasse muss mit der GUID übereinstimmen, die Sie im CustomActivator-Registrierungswert angegeben haben.
struct callback : winrt::implements<callback, INotificationActivationCallback>
{
HRESULT __stdcall Activate(
LPCWSTR app,
LPCWSTR args,
[[maybe_unused]] NOTIFICATION_USER_INPUT_DATA const* data,
[[maybe_unused]] ULONG count) noexcept final
{
try
{
std::wcout << this_app_name << L" has been called back from a notification." << std::endl;
std::wcout << L"Value of the 'app' parameter is '" << app << L"'." << std::endl;
std::wcout << L"Value of the 'args' parameter is '" << args << L"'." << std::endl;
return S_OK;
}
catch (...)
{
return winrt::to_hresult();
}
}
};
Schritt 3: Senden eines Popups
In Windows 10 wird der Inhalt der Popupbenachrichtigung in einer adaptiven Sprache beschrieben, die eine große Flexibilität beim Aussehen Ihrer Benachrichtigung ermöglicht. Weitere Informationen finden Sie in der Popupinhaltsdokumentation .
Wir beginnen mit einer einfachen textbasierten Benachrichtigung. Erstellen Sie den Benachrichtigungsinhalt (mithilfe der Benachrichtigungsbibliothek), und zeigen Sie die Benachrichtigung an!
Wichtig
Sie müssen Ihre AUMID von früher verwenden, wenn Sie die Benachrichtigung senden, damit die Benachrichtigung von Ihrer App angezeigt wird.
![Einfache Textbenachrichtigung](images/send-toast-01.png)
// Construct the toast template
XmlDocument doc;
doc.LoadXml(L"<toast>\
<visual>\
<binding template=\"ToastGeneric\">\
<text></text>\
<text></text>\
</binding>\
</visual>\
</toast>");
// Populate with text and values
doc.SelectSingleNode(L"//text[1]").InnerText(L"Andrew sent you a picture");
doc.SelectSingleNode(L"//text[2]").InnerText(L"Check this out, The Enchantments in Washington!");
// Construct the notification
ToastNotification notif{ doc };
// And send it! Use the AUMID you specified earlier.
ToastNotificationManager::CreateToastNotifier(L"MyPublisher.MyApp").Show(notif);
Schritt 4: Behandeln der Aktivierung
Ihr COM-Aktivator wird aktiviert, wenn auf Ihre Benachrichtigung geklickt wird.
Weitere Informationen
AUMID-Einschränkungen
Die AUMID sollte maximal 129 Zeichen lang sein. Wenn die AUMID mehr als 129 Zeichen lang ist, funktionieren geplante Popupbenachrichtigungen nicht. Sie erhalten beim Hinzufügen einer geplanten Benachrichtigung die folgende Ausnahme: Der an einen Systemaufruf übergebene Datenbereich ist zu klein. (0x8007007A).
Windows developer
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für