Abbiamo già parlato in uno script precedente della gestione basilare delle notifiche all'interno della Universal Windows Platform. Oggi, invece, affrontiamo un tema più complesso, ovvero come interagire con le notifiche.
Il più semplice livello di interazione è rappresentato dai pulsanti, che permettono, nel caso di una sveglia, ad esempio, di spegnerla oppure di fare lo snooze e riprogrammarla. Per aggiungere i pulsanti è sufficiente aggiungere le Actions al template della notifica toast:
ToastContent toastContent = new ToastContent() { Visual = new ToastVisual() { ... }, Actions = new ToastActionsCustom() { Buttons = { new ToastButton("Snooze", "action=snooze") { ActivationType = ToastActivationType.Foreground }, new ToastButton("Cancel", "action=cancel") { ActivationType = ToastActivationType.Foreground } } }, }; var toast = new ToastNotification(toastContent.GetXml()); ToastNotificationManager.CreateToastNotifier().Show(toast);
L'azione impostata, in questo caso, rimanda all'evento OnActivated della classe App, in cui si potranno recuperare i parametri "snooze" o "cancel" e fare azioni corrispondenti all'evento selezionato, mentre l'applicazione si aprirà nella modalità foreground.
Poiché si sta parlando di una applicazione che simula una sveglia, probabilmente si vuole anche dare all'utente la possibilità di scegliere il prossimo reminder. Per farlo, oltre alla proprietà Buttons è necessario aggiungere la proprietà Inputs, in cui vengono registrate tutte le possibili scelte:
Actions = new ToastActionsCustom() { Buttons = { ... }, Inputs = { new ToastSelectionBox("snoozetiming") { DefaultSelectionBoxItemId = "5", Items = { new ToastSelectionBoxItem("5", "5 minuti"), new ToastSelectionBoxItem("10", "10 minuti"), new ToastSelectionBoxItem("15", "15 minuti") } } } }
E il risultato finale sarà molto simile al seguente:
Come si può notare, è possibile scegliere tramite una combobox il timing preferito e, una volta cliccato sul pulsante, si verrà rimandati di nuovo all'evento OnActivated, dove si potrà recuperare l'item selezionato tramite la proprietà UserInput.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Specificare il versioning nel path degli URL in ASP.NET Web API
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Effettuare il binding di date in Blazor
Come migrare da una form non tipizzata a una form tipizzata in Angular
Gestire liste di tipi semplici con Entity Framework Core
Eseguire operazioni sui blob con Azure Storage Actions
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Sostituire la GitHub Action di login su private registry
Gestire undefined e partial nelle reactive forms di Angular
Hosting di componenti WebAssembly in un'applicazione Blazor static
Criptare la comunicazione con mTLS in Azure Container Apps
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- Ottimizzazione dei block template in Angular 17
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!