Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico é para você se você estiver desenvolvendo um desempacotado app que não seja C# ou C++.
Ou seja, se você não estiver desenvolvendo um pacote empacotado app (consulte Criar um novo projeto para uma área de trabalho app do WinUI 3 empacotada), e você não estiver desenvolvendo um pacote app com local de instalação externo (consulte Conceder identidade de pacote empacotando com local de instalação externo) e o seu app não é C# ou C++.
Uma app notificação é uma mensagem que app pode construir e entregar ao usuário quando o usuário não está usando 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 início rápido usa notificações locais, que são a notificação mais simples a ser implementada.
Note
O termo "toast notificação" está sendo substituído por "app notificação". Esses 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 de C++ UWP ou C++ WRL.
Etapa 1: Registrar seu app no registro
Primeiro, você precisa registrar as informações do seu app no Registro, incluindo um AUMID exclusivo que identifica seu app, o nome de exibição do seu app, seu ícone 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>
Etapa 2: Configurar o ativador COM
As notificações podem ser acessadas a qualquer momento, mesmo quando app não estiver em execução. Portanto, a ativação de notificação é tratada por meio de um ativador COM. Sua classe COM deve implementar a INotificationActivationCallback interface. O GUID da 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, seu app conteúdo de notificação é descrito usando uma linguagem adaptável que permite grande flexibilidade com a aparência da notificação. Consulte a documentação do conteúdo da App notificação para obter mais informações.
Começaremos com uma notificação simples 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 AUMID de antes 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: Gerenciando a ativação
O ativador COM será acionado quando a 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ê receberá 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