Una delle novità più importanti per i sistemi operativi moderni, oltre allo store che raggruppa le applicazioni, è sicuramente il centro notifiche che si occupa, per l'appunto, di raggruppare tutte le notifiche in modo che l'utente sia in grado di visualizzarle per applicazione, anche in un secondo momento rispetto al momento di ricezione.
Le nostre app UWP sono in grado, tramite il pacchetto NuGet Microsoft.Toolkit.Uwp.Notifications di mostrare le cosiddette notifiche Toast:
ToastContent toastContent = new ToastContent() { Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText { Text = "Modificare il timestamp delle notifiche" }, new AdaptiveText { Text = "Con la proprietà DisplayTimestamp si può cambiare l'ora di ricezione!" } } } } }; var toast = new ToastNotification(toastContent.GetXml()); ToastNotificationManager.CreateToastNotifier().Show(toast);
In questo esempio, la notifica inviata è molto semplice ed è composta da solamente un titolo ed un contenuto. C'è però un problema anche in un esempio semplice come questo: la data e l'ora di ricezione della notifica potrebbero essere sbagliati se tra l'invio e la ricezione sul device ci sono stati problemi di rete, il telefono era spento o in modalità aereo, un background task e così via. Infatti, se la notifica push arriva da un WNS (il notification server di Windows), la data mostrata sarà quella di arrivo al WNS, mentre se la notifica è generata localmente, corrisponderà al momento di ricezione da parte di Windows.
Fornire un orario personalizzato e corretto è fondamentale anche per dare un'idea temporale all'utente di quando è stata effettivamente validata la notifica (molto utile ad esempio in caso di offerte temporanee) ed è applicabile via codice tramite la proprietà DisplayTimestamp:
toastContent.DisplayTimestamp = new DateTime(2018, 4, 24, 10, 15, 0); var futureToast = new ToastNotification(toastContent.GetXml()); ToastNotificationManager.CreateToastNotifier().Show(futureToast);
In questo caso specifico si è creata una notifica nel futuro, che ovviamente potrebbe avere poco senso, però rende bene l'idea guardando i contenuti generati all'interno del centro notifiche (in alto la data futura, in basso quella attuale):
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Cards
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Triggerare una pipeline su un altro repository di Azure DevOps
Implementare l'infinite scroll con QuickGrid in Blazor Server
Generare token per autenicarsi sulle API di GitHub
Filtering sulle colonne in una QuickGrid di Blazor
Migliorare la sicurezza dei prompt con Azure AI Studio
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Le novità di Angular: i miglioramenti alla CLI
Gestire il colore CSS con HWB
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
I più letti di oggi
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Ricavare lo spazio occupato su disco dal nostro sito
- Realizzare siti sicuri con ASP.NET Web Pages