Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet är till för dig om du utvecklar en icke-paketerad app som inte är C# eller C++.
Det innebär att om du inte utvecklar ett paketerat app (se Skapa ett nytt projekt för ett paketerat WinUI 3-skrivbord app) och du inte utvecklar en paketerad app med extern plats (se Bevilja paketidentitet genom att paketera med extern plats) och din app inte är C# eller C++.
Ett app-meddelande är en notifikation som app kan konstruera och leverera till användaren medan användaren för närvarande inte använder din app. Den här snabbstarten vägleder dig genom stegen för att skapa, leverera och visa ett Windows-meddelande app . Den här snabbstarten använder lokala meddelanden, som är det enklaste meddelandet att implementera.
Note
Termen "toast meddelande" ersätts med "app notification". Båda dessa termer refererar till samma funktion i Windows, men med tiden kommer vi att fasa ut användningen av "toast meddelande" i dokumentationen.
Important
Om du skriver ett C# appkan du läsa C#-dokumentationen. Om du skriver en C++ app, se gärna dokumentationen om C++ UWP eller C++ WRL.
Steg 1: Registrera din app i registret
Du måste först registrera din appinformation i registret, inklusive en unik AUMID som identifierar ditt app, ditt appvisningsnamn, din ikon och en COM-aktivators GUID.
<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>
Steg 2: Konfigurera com-aktivatorn
**
Meddelanden kan du klicka på när som helst, även när din app inte körs. Därför hanteras meddelandeaktivering via en COM-aktivator. COM-klassen måste implementera INotificationActivationCallback-gränssnittet. Den GUID för din COM-klass måste stämma överens med den GUID som du angav i registrets CustomActivator-värde.
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();
}
}
};
Steg 3: Skicka ett app meddelande
I Windows 10 beskrivs ditt app meddelandeinnehåll med ett anpassningsbart språk som ger stor flexibilitet med hur meddelandet ser ut. Mer information finns i dokumentationen för App meddelandeinnehåll .
Vi börjar med ett enkelt textbaserat meddelande. Skapa meddelandeinnehållet (med hjälp av meddelandebiblioteket) och visa meddelandet!
Important
Du måste använda din AUMID från tidigare när du skickar meddelandet så att meddelandet visas från din 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);
Steg 4: Hantering av aktivering
Com-aktivatorn aktiveras när du klickar på meddelandet.
More details
AUMID restrictions
AUMID bör vara högst 129 tecken långt. Om AUMID är längre än 129 tecken fungerar inte schemalagda toast meddelanden – du får följande undantag när du lägger till ett schemalagt meddelande: Dataområdet som skickas till ett systemanrop är för litet. (0x8007007A).
Windows developer