Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema richtet sich an Sie, wenn Sie ein entpacktes app Paket entwickeln, das nicht C# oder C++ ist.
Das heißt, wenn Sie kein Paket app entwickeln (siehe Erstellen eines neuen Projekts für einen verpackten WinUI 3-Desktop app), und Sie kein app Paket mit externem Speicherort entwickeln (siehe Packetidentität durch Verpacken mit externem Speicherort gewähren), und Ihr app nicht C# oder C++ ist.
Eine app Benachrichtigung ist eine Meldung, die ein app erstellen und dem Benutzer übermitteln kann, während der Benutzer die app gerade nicht verwendet. Diese Schnellstartanleitung führt Sie durch die Schritte zum Erstellen, Bereitstellen und Anzeigen einer Windows-Benachrichtigung app . In dieser Schnellstartanleitung werden lokale Benachrichtigungen verwendet, bei denen es sich um die einfachste zu implementierende Benachrichtigung handelt.
Note
Der Begriff "toast notification" wird durch "app notification" ersetzt. Diese Begriffe beziehen sich beide auf dieselbe Funktion von Windows, aber im Laufe der Zeit werden wir die Verwendung von "toast Benachrichtigung" in der Dokumentation einstellen.
Important
Wenn Sie eine C# app-Datei schreiben, lesen Sie die C#-Dokumentation. Wenn Sie ein C++ app-Dokument schreiben, lesen Sie die C++-UWP - oder C++-WRL-Dokumentation .
Schritt 1: Melden Sie Ihr app im Register an
Zuerst müssen Sie Ihre appInformationen in der Registrierung registrieren, einschließlich einer eindeutigen AUMID, die Ihren appappAnzeigenamen, Ihr Symbol und die GUID eines COM-Aktivators identifiziert.
<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
Benachrichtigungen können jederzeit angeklickt werden, auch wenn app nicht ausgeführt wird. Daher wird die Benachrichtigungsaktivierung über einen COM-Aktivator behandelt. Ihre COM-Klasse muss die INotificationActivationCallback Schnittstelle implementieren. Die GUID für Ihre COM-Klasse muss mit der GUID übereinstimmen, die Sie im Wert "CustomActivator" der Registrierung 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 einer app Benachrichtigung
In Windows 10 wird Der app Benachrichtigungsinhalt mithilfe einer adaptiven Sprache beschrieben, die eine hohe Flexibilität bei der Darstellung Ihrer Benachrichtigung ermöglicht. Weitere Informationen finden Sie in der App Dokumentation zu Benachrichtigungsinhalten .
Wir beginnen mit einer einfachen textbasierten Benachrichtigung. Erstellen Sie den Benachrichtigungsinhalt (mithilfe der Benachrichtigungsbibliothek), und zeigen Sie die Benachrichtigung an!
Important
Sie müssen Ihre AUMID von früher beim Senden der Benachrichtigung verwenden, damit die Benachrichtigung von Ihrem app angezeigt wird.
// 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: Umgang mit der Aktivierung
Der COM-Aktivator wird aktiviert, wenn auf die Benachrichtigung geklickt wird.
More details
AUMID restrictions
Die AUMID sollte höchstens 129 Zeichen lang sein. Wenn die AUMID mehr als 129 Zeichen lang ist, funktionieren geplante toast Benachrichtigungen nicht . Sie erhalten beim Hinzufügen einer geplanten Benachrichtigung die folgende Ausnahme: Der an einen Systemanruf übergebene Datenbereich ist zu klein. (0x8007007A).
Windows developer