Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A toast értesítésben egy folyamatjelző sáv használatával megmutathatja a felhasználónak a hosszan futó műveletek állapotát, például letöltéseket, videó renderelést, gyakorlatcélokat és egyebeket.
Important
Az Értesítési kódtár 1.4.0-s és 1.4.0-s frissítését igényli: Meg kell céloznia az SDK 15063-at, és az 15063-os vagy újabb buildet kell futtatnia a bejelentések állapotsávjainak használatához. A UWP Community Toolkit Notifications NuGet könyvtár 1.4.0-s vagy újabb verzióját kell használnia a bejelentés tartalmában lévő folyamatjelző sáv létrehozásához.
A bejelentések folyamatjelző sávja lehet "meghatározatlan" (nincs konkrét érték, animált pöttyök jelzik, hogy egy művelet történik) vagy "determinátum" (a sáv egy adott százaléka megtelt, például 60%).
Fontos API-k: NotificationData osztály, ToastNotifier.Update metódus, ToastNotification osztály
Note
A bejelentési értesítésekben csak a Desktop támogatja a folyamatjelző sávokat. Más eszközökön a folyamatjelző sáv el lesz távolítva az értesítésből.
Az alábbi képen egy determinált folyamatjelző sáv látható, amelynek minden megfelelő tulajdonsága fel van címkézve.
jelzett folyamatjelző tulajdonságokkal
| Property | Típus | Required | Description |
|---|---|---|---|
| Title | karakterlánc vagy BindableString | false | Lekéri vagy beállítja a nem kötelező címkarakterláncot. Támogatja az adatkötést. |
| Value | Dupla vagy Adaptív progressziósávérték vagy Kötődő progressziósávérték | false | Lekéri vagy beállítja a(z) folyamatjelző sáv értékét. Támogatja az adatkötést. Alapértelmezés szerint 0. Lehet dupla 0,0 és 1,0 között, AdaptiveProgressBarValue.Indeterminatevagy new BindableProgressBarValue("myProgressValue"). |
| ValueStringOverride | karakterlánc vagy BindableString | false | Lekéri vagy beállítja az alapértelmezett százalékos sztring helyett megjelenítendő opcionális sztringet. Ha ez nincs megadva, a "70%" üzenet jelenik meg. |
| Status | karakterlánc vagy BindableString | true | Lekéri vagy beállít egy állapotsztringet (kötelező), amely a bal oldali folyamatjelző sáv alatt jelenik meg. Ennek a sztringnek a művelet állapotát kell tükröznie, például a "Letöltés..." vagy "Telepítés..." |
Így hozhatja létre a fent látható értesítést...
new ToastContentBuilder()
.AddText("Downloading your weekly playlist...")
.AddVisualChild(new AdaptiveProgressBar()
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
});
A folyamatjelző sáv értékeit azonban dinamikusan frissítenie kell ahhoz, hogy valóban "élő" legyen. Ezt adatkötéssel teheti meg a bejelentés frissítéséhez.
Adatkötés használata értesítés frissítéséhez
Az adatkötés használata a következő lépésekkel jár...
- Adatkötött mezőket használó értesítési tartalom létrehozása
- Címke hozzárendelése (és opcionálisan egy csoport) a ToastNotification-hoz.
- Adja meg a kezdeti Adat értékeit a ToastNotification-hez.
- Az üzenet elküldése
- Az adatértékek új értékekkel való frissítéséhez használja a Címke és a Csoport függvényt
Az alábbi kódrészlet az 1–4. lépést mutatja be. A következő kódrészlet bemutatja, hogyan frissítse a toast adat értékeket.
using Windows.UI.Notifications;
using Microsoft.Toolkit.Uwp.Notifications;
public void SendUpdatableToastWithProgress()
{
// Define a tag (and optionally a group) to uniquely identify the notification, in order update the notification data later;
string tag = "weekly-playlist";
string group = "downloads";
// Construct the toast content with data bound fields
var content = new ToastContentBuilder()
.AddText("Downloading your weekly playlist...")
.AddVisualChild(new AdaptiveProgressBar()
{
Title = "Weekly playlist",
Value = new BindableProgressBarValue("progressValue"),
ValueStringOverride = new BindableString("progressValueString"),
Status = new BindableString("progressStatus")
})
.GetToastContent();
// Generate the toast notification
var toast = new ToastNotification(content.GetXml());
// Assign the tag and group
toast.Tag = tag;
toast.Group = group;
// Assign initial NotificationData values
// Values must be of type string
toast.Data = new NotificationData();
toast.Data.Values["progressValue"] = "0.6";
toast.Data.Values["progressValueString"] = "15/26 songs";
toast.Data.Values["progressStatus"] = "Downloading...";
// Provide sequence number to prevent out-of-order updates, or assign 0 to indicate "always update"
toast.Data.SequenceNumber = 1;
// Show the toast notification to the user
ToastNotificationManager.CreateToastNotifier().Show(toast);
}
Ezután, ha módosítani szeretné a Adat értékeit, használja a Update metódust az új adatok megadására anélkül, hogy újra létre kellene hoznia az egész toast üzenet tartalmát.
using Windows.UI.Notifications;
public void UpdateProgress()
{
// Construct a NotificationData object;
string tag = "weekly-playlist";
string group = "downloads";
// Create NotificationData and make sure the sequence number is incremented
// since last update, or assign 0 for updating regardless of order
var data = new NotificationData
{
SequenceNumber = 2
};
// Assign new values
// Note that you only need to assign values that changed. In this example
// we don't assign progressStatus since we don't need to change it
data.Values["progressValue"] = "0.7";
data.Values["progressValueString"] = "18/26 songs";
// Update the existing notification's data by using tag/group
ToastNotificationManager.CreateToastNotifier().Update(data, tag, group);
}
A Update metódus használata a teljes toast cseréje helyett azt is biztosítja, hogy a toast értesítés ugyanabban a pozícióban maradjon a Műveletközpontban, és ne mozduljon felfelé vagy lefelé. Elég zavaró lenne a felhasználó számára, ha az értesítés néhány másodpercenként a Műveletközpont tetejére ugrálna, miközben a folyamatjelző sáv töltődik!
Az Update metódus egy enumerációt ad vissza, a NotificationUpdateResult értéket, amely tájékoztatja Önt arról, hogy a frissítés sikeres volt-e, vagy nem található-e az értesítés (ami azt jelenti, hogy a felhasználó valószínűleg elutasította az értesítést, és nem kell frissítéseket küldenie hozzá). Nem javasoljuk, hogy újabb bejelentést tegyen, amíg a folyamat befejeződött (például amikor a letöltés befejeződik).
Adatkötést támogató elemek
A toast értesítések következő elemei támogatják az adatkötést
- Az AdaptiveProgress összes tulajdonsága
- A felső szintű AdaptiveText elemek Szöveg tulajdonsága
Értesítés frissítése vagy cseréje
A Windows 10 óta mindig lecserélni egy értesítést úgy, hogy új bejelentést küld ugyanazzal a Címke és Csoport. Mi a különbség az értesítés
| Replacing | Updating | |
|---|---|---|
| Pozíció a Műveletközpontban | Az értesítés áthelyezése a Műveletközpont tetejére. | Az értesítés a Műveletközpontban marad. |
| Modifying content | Teljesen megváltoztathatja az értesítés összes tartalmát és elrendezését. | Csak olyan tulajdonságok módosíthatók, amelyek támogatják az adatkötést (folyamatjelző sáv és felső szintű szöveg) |
| Újra megjelenő előugró ablak | Újra megjelenhet előugró értesítésként, ha a ElnyomásElőugróAblakotfalse értékre állítja (vagy igaz értékre állítja, hogy csendesen elküldje az Értesítési központba) |
Nem fognak újra megjelenni előugró ablakként; az értesítés adatai észrevétlenül frissülnek a Műveletközpontban. |
| User dismissed | Függetlenül attól, hogy a felhasználó elutasította-e a korábbi értesítést, a helyettesítő üzenet mindig elküldésre kerül. | Ha a felhasználó elutasította az értesítést, az értesítés frissítése nem sikerül. |
Általában frissítés hasznos...
- Olyan információk, amelyek rövid idő alatt gyakran változnak, és nem igénylik a felhasználó figyelmét
- Finom módosítások az értesítési tartalomban, például 50% módosítása 65%-re.
Gyakran javasoljuk, hogy miután a frissítések sorozata befejeződött (mint például a fájl letöltése), hajtsa végre a cserét a végső lépésként, mert...
- A végleges értesítés valószínűleg drasztikus elrendezésváltozásokkal rendelkezik, például eltávolítja a folyamatjelző sávot, új gombokat ad hozzá stb.
- Előfordulhat, hogy a felhasználó elutasította a függőben lévő állapotról szóló értesítést, mivel nem érdekli őket a letöltés megtekintése, de a művelet befejezésekor egy előugró bejelentéssel szeretne értesítést kapni
Related topics
Windows developer