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.
Med schemalagda app meddelanden kan du schemalägga ett meddelande så att det visas vid ett senare tillfälle, oavsett om ditt app körs vid den tidpunkten. Detta är användbart för scenarier som att visa påminnelser eller andra uppföljningsuppgifter för användaren, där tid och innehåll i meddelandet är känt i förväg.
Observera att schemalagda app meddelanden har ett leveransfönster på 5 minuter. Om datorn är avstängd under den schemalagda leveranstiden och förblir avstängd i mer än 5 minuter kommer meddelandet att "tas bort" eftersom det inte längre är relevant för användaren. Om du behöver garanterad leverans av meddelanden oavsett hur länge datorn var avstängd rekommenderar vi att du använder en bakgrundsaktivitet med en tidsutlösare, vilket visas i det här kodexemplet.
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
Skrivbordsprogram (både paketerade och uppackade) har lite olika steg för att skicka meddelanden och hantera aktivering. Följ anvisningarna nedan, men ersätt ToastNotificationManager med DesktopNotificationManagerCompat klassen från dokumentationen för skrivbordsappar .
Viktiga API:er: ScheduledToastNotification Klass
Prerequisites
För att förstå det här avsnittet fullt ut är följande användbart...
- En fungerande kunskap om app villkor och begrepp för meddelanden. Mer information finns i Toast översikten över åtgärdscenter.
- En förtrogenhet med Windows 10-meddelandeinnehåll app . Mer information finns i dokumentationen omApp meddelandeinnehåll.
- Ett Windows 10 UWP-projekt app
Steg 1: Installera NuGet-paketet
Installera NuGet-paketet Microsoft.Toolkit.Uwp.Notifications. Vårt kodexempel använder det här paketet. I slutet av artikeln tillhandahåller vi de "vanliga" kodfragmenten som inte använder några NuGet-paket. Med det här paketet kan du skapa app meddelanden utan att använda XML.
Steg 2: Lägga till namnområdesdeklarationer
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Steg 3: Schemalägg meddelandet
Vi använder ett enkelt textbaserat meddelande som påminner en elev om de läxor som ska lämnas in idag. Skapa meddelandet och schemalägg det!
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5));
Ange en primärnyckel för ditt meddelande
Om du vill avbryta, ta bort eller ersätta det schemalagda meddelandet programmatiskt måste du använda egenskapen Tagg (och eventuellt egenskapen Grupp) för att ange en primärnyckel för ditt meddelande. Sedan kan du använda den här primärnyckeln i framtiden för att avbryta, ta bort eller ersätta meddelandet.
Mer information om hur du ersätter/tar bort redan levererade app meddelanden finns i Snabbstart: Hantera toast meddelanden i Åtgärdscenter (XAML).
Tagg och grupp tillsammans fungerar som en sammansatt primärnyckel. Grupp är den mer generiska identifieraren, där du kan tilldela grupper som "wallPosts", "messages", "friendRequests" osv. Och sedan bör taggen unikt identifiera själva meddelandet inifrån gruppen. Genom att använda en allmän grupp kan du sedan ta bort alla meddelanden från gruppen med hjälp av RemoveGroup-API:et.
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5), toast =>
{
toast.Tag = "18365";
toast.Group = "ASTR 170B1";
});
Avbryt schemalagda meddelanden
Om du vill avbryta ett schemalagt meddelande måste du först hämta listan över alla schemalagda meddelanden.
Leta sedan reda på ditt schemalagda app meddelande som matchar taggen (och eventuellt gruppera) som du angav tidigare och anropa RemoveFromSchedule().
// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();
// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
// And remove it from the schedule
notifier.RemoveFromSchedule(toRemove);
}
Important
En uppackad (saknar paketidentitet vid körning) Win32 app måste använda klassen ToastNotificationManagerCompat enligt ovan. Om du använder ToastNotificationManager själv får du ett undantag för ett saknat element. Alla typer av appar kan använda compat-klassen och fungerar korrekt.
Activation handling
Mer information om hur du hanterar aktivering finns i skicka ett lokalt app meddelandedokument . Aktivering av ett schemalagt app meddelande hanteras på samma sätt som aktivering av ett lokalt app meddelande.
Lägga till åtgärder, indata med mera
Mer information om avancerade ämnen som åtgärder och indata finns i skicka ett lokalt app meddelandedokument . Åtgärder och indata fungerar på samma sätt i lokala app meddelanden som i schemalagda app meddelanden.
Resources
Windows developer