Risoluzione dei problemi relativi a notifiche di tipo riquadro, di tipo popup e badge (app di Windows Runtime)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
In questo argomento sono illustrate le operazioni iniziali per la risoluzione dei problemi relativi a notifiche di tipo riquadro, di tipo riquadro, di tipo popup e badge, inclusi i diversi metodi di notifica, ovvero notifiche locali, push, periodiche e pianificate.
Risoluzione dei problemi relativi alle notifiche di tipo riquadro
Questa sezione analizza alcuni errori comuni che potresti riscontrare quando lavori a riquadri e modelli di riquadro. Se non specificato diversamente, ogni soluzione si applica a tutti i tipi di recapito di notifiche: notifiche locali, pianificate, periodiche o push.
La notifica di tipo riquadro locale non viene visualizzata
Il problema più comune in questo caso è un errore di qualche tipo nel codice XML usato per definire la notifica. Ci sono tuttavia altre cause possibili, che puoi individuare anche con questi passaggi:
- Controlla le impostazioni dell'utente
- Fornisci risorse logo grandi o larghi nel manifesto dell'app
- Controlla le dimensioni delle immagini
- Verifica gli URL
- Esamina i formati delle immagini
- Controlla la sintassi del codice XML
- Controlla l'ora di scadenza della notifica
- Assicurati di aver abilitato la coda notifiche
Controlla le impostazioni dell'utente
Causa possibile: l'utente o l'amministratore ha disabilitato le notifiche. Controlla se nella barra dell'app è disponibile un'opzione Attiva/Disattiva riquadro animato e verifica che l'opzione non sia disattivata. Per quanto riguarda l'amministratore, ci sono diversi Criteri di gruppo che possono disabilitare le notifiche. Rivolgiti all'amministratore per assicurarti che le notifiche siano abilitate.
Correzione: abilita le notifiche tramite la barra dell'app o chiedi a un amministratore di abilitarle tramite Criteri di gruppo.
Per altre informazioni, vedi TileUpdater.setting.
Fornisci risorse logo grandi o larghi nel manifesto dell'app
Causa possibile: nel manifesto dell'app non è specificata un'immagine predefinita della risorsa del riquadro per la dimensione riquadro specificata nella notifica. Se ad esempio non viene fornita l'immagine predefinita per il riquadro esteso, il riquadro non visualizza mai modelli di notifica in formato esteso. In teoria, le notifiche di tipo riquadro devono includere nel payload della notifica i modelli per tutte le dimensioni riquadro possibili; a meno che il riquadro non usi intenzionalmente solo un'immagine media, il mittente non può conoscere in anticipo con quale dimensione verrà visualizzata notifica. Questa impostazione dipende solamente dall'utente.
Correzione: Nel payload della notifica, fornisci una versione dell'aggiornamento per ciascun tipo di immagine logo predefinita, fornita nel manifesto. Il riquadro può essere ridimensionato a qualsiasi dimensione che abbia un'immagine logo predefinita.
Controlla le dimensioni delle immagini
Causa possibile: tutte le immagini nelle notifiche devono avere dimensioni minori di 1024 x 1024 pixel e 200 KB. Se un'immagine in una notifica supera una di queste dimensioni, la notifica verrà eliminata.
Correzione: riduci le immagini.
Per altre informazioni, vedi l'argomento relativo alle dimensioni dei riquadri e delle immagini avviso popup.
Verifica gli URL
Causa possibile: errori di sintassi degli URL.
Le immagini nelle notifiche vengono specificate attraverso un riferimento a una risorsa o percorso letterale. Se viene usato un percorso, deve essere specificato con uno di questi protocolli:
Prefisso | Uso | Note |
---|---|---|
http:// e https:// | Immagini archiviate online | Queste immagini potrebbero essere memorizzate nella cache localmente, perciò il server di immagini potrebbe non ricevere una richiesta per l'immagine. Le stringhe di query vengono aggiunte a questi URL. Assicurati che il server Web restituisca l'immagine originale invece di un errore 404 se scegli di ignorare la stringa di query. Esempio di stringa di query: ?scale=100&contrast=blk&lang=it-IT Ricorda che per recuperare qualsiasi notifica da Internet, nel manifesto dell'app deve essere dichiarata la funzionalità "Internet (client)". |
ms-appx:/// | Immagini incluse nel pacchetto dell'app | Queste immagini fanno parte dell'installazione della tua app. Nota che questo riferimento richiede una tripla barra dopo i due punti. Dopo le tre barre, l'URI (Uniform Resource Identifier) accetta sia la barra (/) che la barra rovesciata (\) per separare le cartelle in un percorso, ma la maggior parte dei linguaggi di programmazione richiede l'uso di un carattere di escape quando specifichi una barra rovesciata (\\). |
ms-appdata:///local/ | Immagini salvate localmente dall'app | Questa posizione corrisponde alla cartella restituita da Windows.Storage.ApplicationData.current.localFolder. Nota che questo riferimento richiede una tripla barra dopo i due punti. I separatori di cartelle nel percorso richiedono caratteri di escape (\\). |
Nota Il carattere '/' funziona come separatore in ogni tipo specifico. Ti consigliamo di usare sempre '/' invece di '\' per evitare di fare confusione con i caratteri di escape.
Esempi ben formati:
URL |
---|
https://www.contoso.com/icon.jpg |
ms-appx:///images/icon.png |
ms-appdata:///local/myDrawing.jpg |
Esempi non ben formati:
URL | Note |
---|---|
https://www.contoso.com\fail.png | Un percorso HTTP richiede il carattere /. Non usare il carattere \. |
http:www.contoso.com | Un percorso HTTP richiede una doppia barra (//) dopo i due punti. |
"ms-appdata:///local/c:\\images\\Drawing.jpg" | Un'app non può fare riferimento a immagini esterne all'archivio locale. |
"ms-appx://images/triangle.png" | Usa una tripla barra invece di una doppia barra con "ms-appx:". |
Esamina i formati delle immagini
Causa possibile: le immagini hanno un formato non supportato.
Le notifiche possono usare solo immagini in formato gif, png o jpg/jpeg. Il formato dell'immagine deve anche corrispondere all'estensione. Non sarà sufficiente rinominare semplicemente un tipo di file non supportato con un'estensione supportata.
La causa più comune degli errori di formato delle immagini è la serializzazione delle bitmap nell'archivio Windows.Storage.ApplicationData.current.localFolder. Assicurati di richiamare il formato preferito altrimenti l'immagine verrà archiviata come bitmap di Windows e l'intestazione includerà "BMP"—un tipo non supportato.
Per verificare: verifica innanzitutto se puoi inviare correttamente una notifica di solo testo per restringere il problema all'immagine. Per verificare il formato dell'immagine, puoi caricarla in un programma di elaborazione di immagini e salvarla in formato jpg. Se fai riferimento a questo nuovo file jpg nella notifica e l'errore non si verifica più, probabilmente si trattava di un errore di formato dell'immagine. Puoi anche aprire il file nell'editor binario di Microsoft Visual Studio ed esaminarne l'intestazione.
Correzione: modifica o correggi i formati delle immagini.
Controlla il contenuto e la sintassi del codice XML
Causa possibile: errori di convalida o di sintassi XML.
Oltre alla sintassi di base, accertati che il tuo XML sia completo e corretto, specialmente se hai creato il payload come stringa, senza usare le API o la libreria NotificationsExtensions. Ecco alcuni tra gli errori comuni nel contenuto XML:
- Distinzione tra maiuscole e minuscole. I nomi di tag e di attributi e i valori degli attributi fanno distinzione tra maiuscole e minuscole. Assicurati di usare correttamente maiuscole e minuscole nel codice XML.
- Per ogni dimensione di riquadro, è necessario fornire un elemento binding. Devi fornire un elemento binding per ciascuna dimensione del riquadro che supporti (ovvero, le immagini logo che hai fornito nel manifesto) in ciascuna notifica che invii.
- Le stringhe di testo non devono contenere caratteri XML riservati. Ad esempio, non puoi applicare il corsivo alle stringhe includendo i tag <i> e </i>. Se intendi visualizzare i caratteri "<i>", dovrai usare dei caratteri di escape. Per altre informazioni sui caratteri di escape nel codice XML, vedi Entità carattere XML e XAML.
- I valori forniti per gli attributi lang devono essere conformi alla specifica ITEF BCP 47.
- Le stringhe XML create localmente (per notifiche locali o pianificate) devono usare la codifica UTF-16. Quando vengono inviate tramite notifiche push o quando ne viene eseguito il polling da un URL, le stringhe devono usare la codifica UTF-8.
- Se includi un elemento image nel payload XML con un attributo src non vuoto, assicurati di includere un riferimento a un'immagine valida altrimenti la notifica verrà ignorata.
Puoi usare il registro eventi per controllare gli errori quando una notifica di tipo riquadro non viene visualizzata. Cerca gli eventi relativi alle notifiche di tipo riquadro nel Visualizzatore eventi in Registri applicazioni e servizi > Microsoft > Windows > App > Microsoft-Windows-TWinUI/Operativo.
Per verificare: usa un correttore sintattico XML, ad esempio Visual Studio Editor, per cercare errori di sintassi di base. Cerca il riferimento al modello appropriato (TileTemplateType) per assicurarti di disporre del numero giusto di immagini e di assegnare l'immagine giusta all'indice dell'immagine giusto.
Correzione: modifica il codice XML o usa un modello diverso corrispondente al contenuto. Prendi anche in considerazione l'uso della libreria NotificationsExtensions per evitare di manipolare l'XML direttamente.
Assicurati che la notifica non sia scaduta
Causa possibile: la scadenza è impostata su un valore troppo piccolo.
Se imposti l'ora di scadenza per la notifica usando il metodo expirationTime (per una notifica locale) o il campo di intestazione X-WNS-TTL (in una notifica push), ricordati che i valori rappresentano millisecondi. Se, ad esempio, vuoi che una notifica di tipo riquadro duri esattamente un'ora, il valore deve essere 60 * 60 * 1000 = 3600000.
Correzione: usa un valore più grande.
Assicurati di avere abilitato la coda notifiche se vuoi usare il ciclo delle notifiche
Causa possibile: la coda notifiche di tipo riquadro non è stata abilitata.
Per impostazione predefinita, i riquadri visualizzano un solo aggiornamento per volta e una nuova notifica in arrivo sostituisce quella esistente. Se vuoi visualizzare le ultime cinque notifiche in rotazione, devi chiamare TileUpdater.enableNotificationQueue(true) nel codice di inizializzazione dell'app. Questa operazione è necessaria una sola volta. Per altre informazioni, vedi Come usare la coda notifiche con le notifiche locali.
Correzione: chiama enableNotificationQueue(true) nel codice di inizializzazione. Verifica inoltre che i tag delle notifiche siano univoci.
Risoluzione dei problemi relativi alle notifiche pianificate
Un avviso popup o un riquadro pianificato non viene visualizzato
Possibile causa: la maggior parte delle volte, il motivo per cui si verificano problemi di aggiornamento dei riquadri o mancata visualizzazione delle notifiche di tipo avviso popup è che il formato del contenuto XML della notifica non è corretto. Le notifiche di tipo riquadro e di tipo avviso popup pianificate, così come quelle non pianificate, devono essere conformi agli schemi XML relativi a riquadri e avvisi popup.
Correzione: come primo passo nel debug dei problemi relativi alle notifiche pianificate , testa il codice XML attraverso una notifica locale. Per altre informazioni, vedi la sezione La notifica di tipo riquadro locale non viene visualizzata o La notifica di tipo avviso popup locale non viene visualizzata in questo argomento.
La chiamata dell'app al metodo AddToSchedule ha esito negativo
Possibile causa: il numero massimo di notifiche pianificate consentite è stato superato.
Correzione: se tenti di pianificare più di 4096 notifiche, sia TileUpdater.addToSchedule che ToastNotifier.addToSchedule avranno esito negativo. Riduci il numero di notifiche pianificate.
Possibile causa: la notifica è pianificata per un orario precedente rispetto all'orario corrente dell'orologio di sistema.
Correzione: verifica che l'orario della notifica pianificata sia nel futuro. Controlla l'orario dell'orologio di sistema.
Risoluzione dei problemi relativi alle notifiche periodiche (con polling)
Le notifiche periodiche non aggiornano il riquadro o la notifica
Potrebbero verificarsi uno o più problemi che impediscono la visualizzazione delle notifiche periodiche:
- Il servizio Web non restituisce un documento XML valido conforme allo schema XML dei riquadri. In caso di problemi nell'implementazione delle notifiche periodiche, verifica innanzitutto la correttezza del formato del codice XML del riquadro. Quando esegui il debug di un problema relativo alle notifiche periodiche, ti consigliamo innanzitutto di testare il codice XML attraverso una notifica locale. Per altre informazioni, vedi la sezione La notifica di tipo riquadro locale non viene visualizzata in questo argomento e Guida introduttiva: Invio di un aggiornamento di riquadro.
- Il testo restituito dalla richiesta di polling non è in formato UTF-8. È necessaria la codifica UTF-8.
- Il servizio non risponde correttamente alla richiesta HTTP GET usata da Windows quando esegue il polling dell'URL fornito per il tuo servizio. Sono supportati i protocolli HTTP e HTTPS.
- Nel file manifesto dell'app (package.appxmanifest) non è specificata la funzionalità Internet. Nell'editor del manifesto di Visual Studio questa opzione è disponibile nella scheda Funzionalità come Internet (client). Se nel file manifesto non è dichiarata questa funzionalità per l'app, Windows non eseguirà il polling del servizio.
- Assicurati che i valori impostati dalle intestazioni X-WNS-Tag e X-WNS-Expires siano formattati correttamente. X-WNS-Expires deve usare uno dei formati seguenti:
- Sun, 06 Nov 1994 08:49:37 GMT
- Sunday, 06-Nov-94 08:49:37 GMT
- Sun Nov 6 08:49:37 1994
Gli aggiornamenti periodici vengono ritardati
- Se necessario, Windows può ritardare il polling dell'URL fino a 15 minuti per ottimizzare le prestazioni e il consumo.
- Il servizio non era disponibile nel momento in cui il tuo URL è stato contattato. Quando il servizio non è disponibile, non verrà contattato di nuovo fino all'intervallo di polling successivo.
Risoluzione dei problemi relativi alle notifiche push
Questa sezione analizza alcuni errori comuni che potresti riscontrare quando usi notifiche push.
- Controllare i registri eventi
- La notifica push riceve una risposta "200 OK", ma non viene visualizzata
- La notifica push restituisce un codice diverso da "200 OK"
- Errori nel tentativo creare un canale di notifica push
Controllare i registri eventi
Se le notifiche push di tipo riquadro o avviso popup non vengono visualizzate some previsto, controlla i registri eventi.
- Se la notifica viene ricevuta ma non visualizzata: avvia il Visualizzatore eventi ed esamina il registro Microsoft-Windows-TWinUI/Operational in Registri applicazioni e servizi\Microsoft\Windows\Apps.
- Se la notifica non viene nemmeno ricevuta: avvia il Visualizzatore eventi ed esamina il registro Operational in Registri applicazioni e servizi\Microsoft\Windows\PushNotifications-Platform.
La notifica push riceve una risposta "200 OK", ma non viene visualizzata
Se Windows Push Notification Services (WNS) restituisce la risposta "200 OK" invierà la notifica al client se quest'ultimo è online. Se hai verificato che il client è online, ma la critica non viene visualizzata, esegui questi passaggi:
Causa: errori XML nel contenuto della notifica.
Correzione: verifica la sintassi XML di base e assicurarti che il codice XML sia completo e corretto. Ecco alcuni tra gli errori comuni nel contenuto XML:
- Distinzione tra maiuscole e minuscole. I nomi di tag e di attributi e i valori degli attributi fanno distinzione tra maiuscole e minuscole. Assicurati di usare correttamente maiuscole e minuscole nel codice XML.
- Per ogni formato di riquadro supportato, è necessario fornire un elemento binding. Devi fornire un elemento binding per ognuna delle dimensioni di riquadro supportate in ogni notifica inviata.
- Le stringhe di testo non devono contenere caratteri XML riservati. Non è possibile, ad esempio, rendere corsivo un riquadro o un avviso popup includendo i tag <i> e</i>. Se intendi visualizzare i caratteri "<i>", dovrai usare dei caratteri di escape. Per altre informazioni sui caratteri di escape nel codice XML, vedi Entità carattere XML e XAML.
- I valori forniti per gli attributi lang devono essere conformi alla specifica ITEF BCP 47.
- Le stringhe XML inviate tramite notifiche push dovranno usare la codifica UTF-8.
- Se includi un elemento image nel payload XML con un attributo src non vuoto, assicurati di includere un riferimento a un'immagine valida altrimenti la notifica verrà ignorata.
Per altre informazioni, vedi la documentazione relativa agli schemi di riquadri, notifiche e avvisi popup.
Causa: uso improprio dei parametri API per le notifiche push
Correzione: per informazioni specifiche vedi la documentazione relativa all'API nello spazio dei nomi Windows.Networking.PushNotifications.
Causa: il tipo di intestazione non corrisponde al contenuto della notifica. Se l'intestazione X-WNS-Type non è impostata su un valore—riquadro, notifica o avviso popup—che corrisponde al modello di notifica specificato nel payload, la notifica non verrà visualizzata. La mancata corrispondenza provocherà un errore sul client e la notifica verrà rimossa.
Correzione: vedi l'argomento relativo alle intestazioni delle richieste e delle risposte per Servizi notifica Push Windows per verificare che il server applicazioni stia usando il valore corretto per l'intestazione X-WNS-Type.
Causa: il valore TTL (time to live), impostato nell'intestazione X-WNS-TTL, è troppo basso.
Correzione: specificare un valore TTL più elevato, ricordando che tale valore viene espresso in secondi.
Se dopo aver eseguito i passaggi precedenti la notifica non viene ancora visualizzata, per altre informazioni vedi le procedure di risoluzione dei problemi relativi alle notifiche locali nella sezione La notifica di tipo riquadro locale non viene visualizzata di questo argomento.
La notifica push restituisce un codice diverso da "200 OK"
Se WNS non restituisce "200 OK" la notifica non verrà inviata al client. Se il codice restituito inizia con 400, lo sviluppatore dovrebbe essere in grado di risolvere il problema autonomamente. Per informazioni sul significato di codici specifici, vedi il riferimento ai codici di risposta WNS. Per un codice di esempio che illustra come rilevare e gestire questi errori, vedi Guida introduttiva: Invio di una notifica Push o scarica l'esempio di notifiche push e periodiche.
Nota Per gli errori non specificamente elencati qui, vedi COM Error Codes (WPN, MBN, P2P, Bluetooth).
- La richiesta di notifica restituisce "400 Richiesta non valida"
- La richiesta di notifica restituisce "401 Autorizzazione negata"
- La richiesta di notifica restituisce "401 Autorizzazione negata", il token è scaduto
- La richiesta di notifica restituisce "403 Accesso negato"
- La richiesta di notifica restituisce "404 Pagina non trovata"
- La richiesta di notifica restituisce "406 Pagina non valida"
- La richiesta di notifica restituisce "410 Non più disponibile"
La richiesta di notifica restituisce "400 Richiesta non valida"
Causa: l'uso di una o più intestazioni WNS potrebbe essere errato, oppure la richiesta HTTP non era valida.
Correzione: vedi l'argomento relativo alle intestazioni delle richieste e delle risposte per Servizi notifica Push Windows per verificare che il server applicazioni stia usando tutte le intestazioni personalizzate come illustrato.
La richiesta di notifica restituisce "401 Autorizzazione negata"
Causa: il server applicazioni deve usare l'ID di sicurezza (SID) del pacchetto e la chiave segreta che hai ricevuto al momento della registrazione dell'app. Se di recente hai modificato la chiave segreta nel dashboard di Windows Store, dovrai aggiornare anche il server applicazioni. Per altre informazioni, vedi la panoramica delle notifiche push.
Correzione: visita il dashboard di Windows Store per verificare il SID del pacchetto e il segreto.
La richiesta di notifica restituisce "401 Autorizzazione negata", il token è scaduto
Causa: i token di accesso hanno una durata limitata. Sei invii una notifica con un token di accesso scaduto, le credenziali del server applicazioni non risulteranno valide e non sarà possibile inviare la notifica.
Correzione: richiedi un nuovo token di accesso da WNS eseguendo l'autenticazione con il tuo ID di sicurezza (SID) del pacchetto e la tua chiave segreta. Per altre informazioni, vedi la panoramica di Servizi notifica Push Windows (WNS).
La richiesta di notifica restituisce "403 Accesso negato"
Causa: questo errore si verifica quando il token di accesso presentato non corrisponde alle credenziali necessarie per l'invio delle notifiche all'URL di canale corrispondente. Tutte le app devono essere registrate in Windows Store per ricevere le credenziali per il server applicazioni. Le app possono inviare notifiche solo usando le credenziali fornite da Windows Store, che sono specifiche per ogni app.
Correzione: accedi al dashboard di Windows Store con il tuo account sviluppatore. Seleziona l'app e fai clic su click "" -> "Gestisci impostazioni servizio cloud". Seleziona "Identificazione app" per leggere le istruzioni sull'aggiornamento del manifesto dell'app in modo che corrisponda alle credenziali del servizio cloud.
La richiesta di notifica restituisce "404 Pagina non trovata"
Causa: questo errore indica in genere che il formato dell'URL del canale non è corretto. L'URL del canale non deve essere mai manomesso o modificato quando invii una notifica a WNS. L'URL del canale va sempre trattato come una stringa opaca—non avrai mai bisogno di esaminarne, né di conoscerne il contenuto.
Correzione: verifica che il codice non stia modificando uno o più caratteri o la codifica dell'URL del canale.
La richiesta di notifica restituisce "406 Pagina non valida"
Causa: WNS applica criteri di protezione per impedire che app dannose possano incidere negativamente sul servizio per altri utenti e sviluppatori. Un numero eccessivo di notifiche in un periodo troppo breve può provocare la rimozione esplicita delle notifiche da parte di WNS.
Correzione: rivedi la frequenza di notifica per controllare se può essere ridotta oppure ottimizzata per migliorare l'esperienza utente.
La richiesta di notifica restituisce "410 Non più disponibile"
Causa: l'URL del canale è scaduto. Non sarà possibile inviare oltre notifiche finché l'app non richiede un nuovo URL di canale.
Correzione: l'app di Windows Store deve sempre richiedere un URL di canale al momento dell'avvio. Non è garantito che l'URL di canale assegnato resti invariato. Se l'URL è cambiato, il client deve aggiornare l'informazione sul server cloud. Per altre informazioni, vedi Come richiedere, creare e salvare un canale di notifica.
Errori nel tentativo creare un canale di notifica push
- La creazione di un canale di notifica restituisce un errore ERROR_NO_NETWORK
- La creazione di un canale di notifica restituisce un errore WPN_E_CLOUD_INCAPABLE
- La creazione di un canale di notifica restituisce un errore WPN_E_INVALID_APP
Nota Per gli errori non specificamente elencati qui, vedi COM Error Codes (WPN, MBN, P2P, Bluetooth).
La creazione di un canale di notifica restituisce un errore ERROR_NO_NETWORK
Causa: per la creazione di un canale di notifica WNS richiede una connessione Internet.
Correzione: verifica la connettività Internet.
La creazione di un canale di notifica restituisce un errore WPN_E_CLOUD_INCAPABLE
Causa: nel manifesto dell'app (package.appxmanifest) non è specificata la funzionalità Internet.
Correzione: verifica che nel manifesto dell'app sia dichiarata la funzionalità Internet. Nell'editor del manifesto di Visual Studio questa opzione è disponibile nella scheda Funzionalità come Internet (client). Per altre informazioni, vedi Capabilities.
La creazione di un canale di notifica restituisce un errore WPN_E_INVALID_APP
Causa: l'app deve usare un nome di pacchetto valido. Se non ne hai ancora ricevuto uno, poi ottenerlo dal portale Windows Store in "Funzionalità avanzate".
Correzione: per informazioni dettagliate sul recupero di un ID di sicurezza del pacchetto (PKSID) per la tua app di Windows Store, vedi Come eseguire l'autenticazione con Servizi notifica Push Windows (WNS).
Risoluzione dei problemi relativi alle notifiche di tipo avviso popup
Questa sezione analizza alcuni errori comuni che potresti riscontrare quando lavori a notifiche di tipo avviso popup e modelli di notifiche di tipo avviso popup. La maggior parte dei passaggi di risoluzione dei problemi per le notifiche di tipo avviso popup corrisponde ai passaggi usati per le notifiche. Se non specificato diversamente, ogni soluzione si applica a tutti i tipi di recapito di notifiche: notifiche locali, pianificate o push.
La notifica di tipo avviso popup locale non viene visualizzata
Il problema più comune in questo caso è un errore di qualche tipo nel codice XML usato per definire la notifica. Ci sono tuttavia altre cause possibili, che puoi individuare con questi passaggi:
- Controlla le impostazioni dell'utente
- Controlla le voci del manifesto dell'app
- Controlla le dimensioni delle immagini
- Verifica gli URL
- Esamina i formati delle immagini
- Controlla la sintassi del codice XML
- Controlla l'ora di scadenza della notifica
Controlla le impostazioni dell'utente
Causa possibile: l'utente o l'amministratore ha disabilitato le notifiche tramite le impostazioni. Controlla l'interruttore on/off globale per le notifiche e gli interruttori specifici dell'applicazione in Impostazioni PC -> pagina Notifiche. Per quanto riguarda l'amministratore, ci sono diversi Criteri di gruppo che possono disabilitare le notifiche. Rivolgiti all'amministratore per assicurarti che le notifiche siano abilitate.
Correzione: abilita le notifiche tramite le impostazioni o chiedi a un amministratore di abilitarle tramite Criteri di gruppo.
Per altre informazioni, vedi Guida introduttiva: Invio di una notifica di tipo avviso popup.
Controlla le voci del manifesto dell'app
Causa possibile: nel manifesto dell'app non sono state impostate le informazioni corrette per abilitare il recapito delle notifiche di tipo avviso popup. Assicurati che l'opzione "Popup supportati" nel manifesto dell'app sia impostata su "Sì". Se una parte del contenuto della notifica, ad esempio un'immagine, viene recuperata da Internet, assicurati che la funzionalità "Internet (client)" sia dichiarata nel manifesto dell'app.
Correzione: abilita le voci specifiche delle notifiche nel manifesto dell'app.
Per altre informazioni, vedi Guida introduttiva: Creazione di un riquadro predefinito tramite l'editor del manifesto di Visual Studio.
Controlla le dimensioni delle immagini
Causa possibile: le immagini per tutte le notifiche devono avere dimensioni minori di 1024 x 1024 pixel e 200 KB. Se un'immagine in una notifica supera una di queste dimensioni, la notifica verrà eliminata.
Correzione: riduci le immagini.
Per altre informazioni, vedi l'argomento relativo alle dimensioni dei riquadri e delle immagini avviso popup.
Verifica gli URL
Causa possibile: errori di sintassi degli URL.
Le immagini nelle notifiche vengono fornite come riferimento a una risorsa o percorso letterale. Se viene usato un percorso, deve essere specificato con uno di questi protocolli:
Prefisso | Uso | Note |
---|---|---|
http:// e https:// | Immagini archiviate online | Queste immagini potrebbero essere memorizzate nella cache localmente, perciò il server di immagini potrebbe non ricevere una richiesta per l'immagine. Le stringhe di query vengono aggiunte a questi URL. Assicurati che il server Web restituisca l'immagine originale invece di un errore 404 se scegli di ignorare la stringa di query. Esempio di stringa di query: ?scale=100&contrast=blk&lang=it-IT Ricorda che per recuperare qualsiasi notifica da Internet, nel manifesto dell'app deve essere dichiarata la funzionalità "Internet (client)". |
ms-appx:/// | Immagini incluse nel pacchetto dell'app | L'URI accetta sia la barra (/) che la barra rovesciata (\) per separare le cartelle in un percorso, ma la maggior parte dei linguaggi di programmazione richiede l'uso di un carattere di escape quando specifichi una barra rovesciata (\\). Nota che questo riferimento richiede una tripla barra dopo i due punti. |
ms-appdata:///local/ | Immagini salvate localmente dall'app | Questa posizione corrisponde alla cartella restituita da Windows.Storage.ApplicationData.current.localFolder. I separatori di cartelle nel percorso richiedono caratteri di escape (\\). Nota che questo riferimento richiede una tripla barra dopo i due punti. |
Nota Il carattere '/' funziona come separatore in ogni tipo specifico. Ti consigliamo di usare sempre '/' invece di '\' per evitare di fare confusione con i caratteri di escape.
Esempi ben formati:
URL |
---|
https://www.contoso.com/icon.jpg |
ms-appx:///images/icon.png |
ms-appdata:///local/myDrawing.jpg |
Esempi non ben formati:
URL | Note |
---|---|
https://www.contoso.com\fail.png | Un percorso HTTP richiede il carattere /. Non usare il carattere \. |
http:www.contoso.com | Un percorso HTTP richiede una doppia barra (//) dopo i due punti. |
"ms-appdata:///local/c:\\images\\Drawing.jpg" | Un'app non può fare riferimento a immagini esterne all'archivio locale. |
"ms-appx://images/triangle.png" | Usa una tripla barra invece di una doppia barra con "ms-appx:". |
Esamina i formati delle immagini
Causa possibile: le immagini hanno un formato non supportato.
Le notifiche possono usare solo immagini in formato png, jpg/jpeg o gif. Il formato dell'immagine deve anche corrispondere all'estensione. Non sarà sufficiente rinominare semplicemente un tipo di file non supportato con un'estensione supportata.
La causa più comune degli errori di formato delle immagini è la serializzazione delle bitmap nell'archivio Windows.Storage.ApplicationData.current.localFolder. Assicurati di richiamare il formato preferito altrimenti l'immagine verrà archiviata come bitmap di Windows e l'intestazione includerà "BMP".
Per verificare: per verificare il formato dell'immagine puoi caricarla in un programma di elaborazione di immagini e salvarla in formato jpg. Se fai riferimento a questo nuovo file jpg nella notifica e l'errore non si verifica più, probabilmente si trattava di un errore di formato dell'immagine. Puoi anche aprire il file nell'editor binario di Visual Studio ed esaminarne l'intestazione.
Correzione: modifica o correggi i formati delle immagini.
Controlla il contenuto e la sintassi del codice XML
Causa possibile: errori di convalida o di sintassi XML.
Oltre a controllare la sintassi di base, assicurati che il codice XML sia completo e corretto. Ecco alcuni tra gli errori comuni nel contenuto XML:
- Distinzione tra maiuscole e minuscole. I nomi di tag e di attributi e i valori degli attributi fanno distinzione tra maiuscole e minuscole. Assicurati di usare correttamente maiuscole e minuscole nel codice XML.
- Le stringhe di testo non devono contenere caratteri XML riservati. Ad esempio, non puoi applicare il corsivo a una stringa in un avviso popup includendo tag <i> e </i>. Se intendi visualizzare i caratteri "<i>", dovrai usare dei caratteri di escape. Per altre informazioni sui caratteri di escape nel codice XML, vedi Entità carattere XML e XAML.
- I valori forniti per gli attributi lang devono essere conformi alla specifica ITEF BCP 47.
- Le stringhe XML create localmente (per notifiche locali o pianificate) devono usare la codifica UTF-16. Quando vengono inviate tramite notifiche push o quando ne viene eseguito il polling da un URL, le stringhe devono usare la codifica UTF-8.
- Se includi un elemento image nel payload XML con un attributo src non vuoto, assicurati di includere un riferimento a un'immagine valida altrimenti si verificherà un errore della notifica.
Puoi usare il registro eventi per controllare gli errori quando una notifica di tipo avviso popup non viene visualizzata. Cerca gli eventi relativi alle notifiche di tipo avviso popup nel Visualizzatore eventi in Registri applicazioni e servizi > Microsoft > Windows > App > Microsoft-Windows-TWinUI/Operativo.
Per verificare: usa un correttore sintattico XML, ad esempio Visual Studio Editor, per cercare errori di sintassi di base. Cerca il riferimento al modello appropriato (ToastTemplateType) per assicurarti di assegnare la voce corretta all'elemento corretto.
Correzione: modifica il codice XML o usa un modello diverso corrispondente al contenuto.
Assicurati che la notifica non sia scaduta
Causa possibile: la scadenza è impostata su un valore troppo piccolo.
Se imposti l'ora di scadenza per la notifica usando il metodo expirationTime (per una notifica locale) o il campo di intestazione X-WNS-TTL (in una notifica push), ricordati che i valori rappresentano millisecondi. Se, ad esempio, vuoi che una notifica di tipo avviso popup duri esattamente un'ora, il valore deve essere 60 * 60 * 1000 = 3600000.
Correzione: usa un valore più grande.
Segnalazione di un problema
Se hai provato con le soluzioni consigliate in questo argomento, ma non hai risolto il problema, pubblica un messaggio nei forum Microsoft per discuterne con gli sviluppatori Microsoft e con altre parti interessate.
Per le notifiche push, oltre a una descrizione del problema, può essere necessario fornire l'URL del canale e un esempio della risposta ricevuta da WNS, comprendente i codici di errore HTTP e le intestazioni HTTP. Quando il server applicazioni segnala un problema, dovrebbe registrare specifiche intestazioni. Per ulteriori informazioni, vedi Intestazioni delle richieste e delle risposte per Servizi notifica Push Windows.
Argomenti correlati
Esempio di riquadri e badge dell'app
Esempio di notifiche pianificate
Esempio di notifiche di tipo avviso popup
Esempio di notifiche push e periodiche
Guida introduttiva: Invio di un aggiornamento di riquadro
Guida introduttiva: Invio di un aggiornamento di notifica
Guida introduttiva: Mostrare le notifiche nella schermata di blocco
Guida introduttiva: Invio di notifiche periodiche
Catalogo di modelli di riquadro
Come pianificare una notifica di tipo riquadro
Come usare la coda notifiche con le notifiche locali
Panoramica di riquadro e notifica di tipo riquadro
Panoramica della schermata di blocco