Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico é para ti se estiveres a desenvolver uma aplicação não empacotada app que não seja em C# ou C++.
Ou seja, se não estiveres a desenvolver uma aplicação empacotada app (ver Criar um novo projeto para uma aplicação desktop appWinUI 3 empacotada) e não estiveres a desenvolver uma aplicação empacotada app com localização externa (ver Atribuir identidade ao pacote empacotando com localização externa), e se a tua app não for em C# ou C++.
Uma app notificação é uma mensagem que um app pode construir e entregar ao usuário enquanto o usuário não está usando o seu app. Este guia de início rápido orienta você pelas etapas para criar, entregar e exibir uma notificação do Windows app . Este guia de início rápido usa notificações locais, que são a notificação mais simples de implementar.
Note
O termo "toast notificação" está a ser substituído por "app notificação". Ambos os termos se referem ao mesmo recurso do Windows, mas com o tempo eliminaremos gradualmente o uso de "toast notificação" na documentação.
Important
Se você estiver escrevendo um C# app, consulte a documentação do C#. Se você estiver escrevendo um C++ app, consulte a documentação C++ UWP ou C++ WRL .
Passo 1: Registe-se o seu app no sistema
Primeiro, precisa registar as informações do app no registo, incluindo um AUMID exclusivo que identifique o nome de exibição do app, o ícone do app e o GUID de um ativador 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>
Passo 2: Configurar o ativador COM
As notificações podem ser clicadas a qualquer momento, mesmo quando o app não está em execução. Assim, a ativação de notificações é tratada através de um ativador COM. Sua classe COM deve implementar a interface INotificationActivationCallback. O GUID para sua classe COM deve corresponder ao GUID especificado no valor CustomActivator do registro.
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();
}
}
};
Etapa 3: enviar uma app notificação
No Windows 10, o app conteúdo da notificação é descrito usando uma linguagem adaptável que permite grande flexibilidade com a aparência da notificação. Consulte a documentação de conteúdo da App notificação para obter mais informações.
Começaremos com uma simples notificação baseada em texto. Construa o conteúdo da notificação (usando a biblioteca de notificações) e mostre a notificação!
Important
Você deve usar o seu AUMID anterior ao enviar a notificação para que a notificação apareça do seu 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);
Etapa 4: Gestão da ativação
O seu ativador COM será acionado quando a sua notificação for clicada.
More details
AUMID restrictions
O AUMID deve ter, no máximo, 129 caracteres. Se o AUMID tiver mais de 129 caracteres, as notificações agendadas toast não funcionarão - você terá a seguinte exceção ao adicionar uma notificação agendada: A área de dados passada para uma chamada do sistema é muito pequena. (0x8007007A).
Windows developer