Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique est destinée à vous si vous développez un package non empaqueté app qui n’est pas C# ou C++.
Autrement dit, si vous ne développez pas de package app (voir Créer un projet pour un bureau WinUI 3 empaqueté app), et que vous ne développez pas de package app avec un emplacement externe (voir Accorder l'identité du package en empaquetant avec un emplacement externe), et si votre app n'est pas en C# ou C++.
Une app notification est un message qu’un app peut construire et remettre à l'utilisateur lorsque celui-ci n’utilise pas actuellement votre app. Ce guide de démarrage rapide vous guide tout au long des étapes de création, de remise et d’affichage d’une notification Windows app . Ce guide de démarrage rapide utilise les notifications locales, qui sont la notification la plus simple à implémenter.
Note
Le terme «toast notification » est remplacé par «app notification ». Ces termes font tous deux référence à la même fonctionnalité de Windows, mais au fil du temps, nous allons abandonner progressivement l'utilisation de «toast notification » dans la documentation.
Important
Si vous écrivez un C# app, consultez la documentation C#. Si vous écrivez un C++ app, consultez la documentation C++ UWP ou C++ WRL .
Étape 1 : Inscrire votre app dans le registre
Vous devez d’abord inscrire les informations de votre app dans le Registre, y compris un AUMID unique qui identifie votre app, le nom d’affichage de votre app, votre icône et le GUID d’un activateur COM.
<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>
Étape 2 : Configurer votre activateur COM
Les notifications peuvent être cliquées à n’importe quel moment dans le temps, même si votre app n’est pas en cours d’exécution. Ainsi, l’activation de notification est gérée par le biais d’un activateur COM. Votre classe COM doit implémenter l’interface INotificationActivationCallback . Le GUID de votre classe COM doit correspondre au GUID que vous avez spécifié dans la valeur CustomActivator du Registre.
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();
}
}
};
Étape 3 : Envoyer une app notification
Dans Windows 10, votre app contenu de notification est décrit à l’aide d’un langage adaptatif qui permet une grande flexibilité avec l’apparence de votre notification. Pour plus d’informations, consultez la documentation sur le contenu de laApp notification.
Nous allons commencer par une simple notification textuelle. Construisez le contenu de notification (à l’aide de la bibliothèque Notifications) et affichez la notification !
Important
Vous devez utiliser votre identifiant AUMID précédent lors de l’envoi de la notification afin que celle-ci s’affiche à partir de votre app.
// 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);
Étape 4 : Gestion de l’activation
Votre activateur COM est activé lorsque votre notification est cliquée.
More details
AUMID restrictions
L’AUMID doit comporter au maximum 129 caractères. Si l’AUMID est de plus de 129 caractères, les notifications planifiées toast ne fonctionneront pas. Vous obtiendrez l’exception suivante lors de l’ajout d’une notification planifiée : la zone de données passée à un appel système est trop petite. (0x8007007A).
Windows developer