Come creare un'app della schermata di blocco che usa notifiche push in background non elaborate (HTML)
[ 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 ]
Questo argomento ti mostrerà come creare un'app della schermata di blocco per ricevere le notifiche di rete in background che utilizzano le notifiche push non elaborate in un'app di Windows Runtime. Le notifiche push non elaborate consentono alle app che si trovano nella schermata di blocco di ricevere le notifiche di rete quando l'app viene eseguita in background.
Obiettivo: Consente di creare un'app della schermata di blocco che riceve notifiche di rete che usano le notifiche push non elaborate quando l'app viene eseguita in background.
Prerequisiti
Le informazioni seguenti riguardano qualsiasi app di Windows Runtime connessa o in grado di riconoscere la rete che dipenda da connessioni di rete che usano le notifiche push non elaborate per essere sempre attiva. Questo argomento riguarda le app scritte in JavaScript per Windows 8.1, Windows Phone 8.1 e Windows Server 2012 R2.
La connettività di rete in background mediante le notifiche push non elaborate è supportata delle app scritte in JavaScript e quelle scritte in C++/XAML, oltre a quelle che usano .NET Framework 4.5 in C#, VB.NET o C++ gestito. Per altre informazioni sulle attività di rete in background che interessano le app scritte in JavaScript, vedi Supporto dell'app con le attività in background.
Creazione di un'app della schermata di blocco che usa notifiche push in background non elaborate
Prima di poter usare una notifica push non elaborata tramite WNS per attivare un'attività in background devi aggiungere la tua app alla schermata di blocco.
Devi impostare le funzionalità appropriate nel manifesto dell'app per far sì che l'app richieda di essere aggiunta alla schermata di blocco. La tua app deve includere anche il codice che ne richiede l'aggiunta alla schermata di blocco e gestisce i casi in cui viene aggiunta o eliminata dalla schermata di blocco dall'utente.
Per poter essere aggiunta alla schermata di blocco, l'app deve ottenere il consenso dell'utente. La richiesta di consenso viene visualizzata quando viene chiamata l'API richiesta schermata di blocco. Se l'utente non autorizza l'esecuzione dell'app nella schermata di blocco, non avrai la possibilità di richiedere nuovamente l'autorizzazione. Tuttavia se l'utente chiude la finestra di dialogo per errore, potrai di nuovo visualizzare la richiesta.
Se l'utente nega l'autorizzazione alla tua app, potrà aggiungere l'app alla schermata di blocco in un momento successivo usando il riquadro a comparsa dell'app. L'utente può inoltre aggiungere manualmente la tua app alla schermata di blocco nella sezione Personalizza delle Impostazioni PC.
Per richiedere che la tua app sia aggiunta alla schermata di blocco, devi completare i passaggi seguenti. Puoi apportare modifiche al manifesto dell'app usando Microsoft Visual Studio 2013 per aprire il file package.appxmanifest o modificando manualmente il manifesto dell'app.
Effettuare la registrazione come app nella schermata di blocco
Verifica che al riquadro della tua app sia associato un grande logo nel manifesto dell'app. Verifica che l'attributo WideLogo sia impostato sull'elemento DefaultTile nel manifesto dell'app.
L'esempio seguente aggiunge un elemento DefaultTile sotto l'elemento <VisualElements> nel manifesto di un'app.
<DefaultTile ShowName="allLogos" WideLogo="images\tile.png" />
Indica l'intenzione della tua app di usare un'attività in background. Il manifesto dell'app deve specificare anche il file di origine JavaScript che contiene l'attività in background e il nome della classe in cui è implementato il punto di ingresso dell'attività in background.
Quando creai un'app della schermata di blocco che usa notifiche push non elaborate con WNS, specifica il file di origine JavaScript e il tipo di attività in background pushNotification. In questo modo la tua app potrà ricevere notifiche push WNS non elaborate.
L'esempio seguente aggiunge una notifica push non elaborata sotto l'elemento <Application> nel manifesto di un'app.
<Extensions> <Extension Category="windows.backgroundTasks" StartPage="js\backgroundTask.js"> <BackgroundTasks> <Task Type="pushNotification" /> </BackgroundTasks> </Extension> </Extensions>
Poiché la tua app sarà aggiunta alla schermata di blocco, deve avere anche un'icona della schermata di blocco da poter usare per visualizzare le notifiche mancate. Per abilitarla, aggiorna il manifesto dell'app in modo da includere l'elemento LockScreen.
L'esempio seguente mostra un elemento LockScreen aggiunto sotto l'elemento <VisualElements> nel manifesto di un'app.
<LockScreen Notification="badge" BadgeLogo="Images\badgelogo.png" />
Dopo aver completato i passaggi precedenti, la tua app può richiedere all'utente l'autorizzazione per essere aggiunta alla schermata di blocco. I metodi Background.BackgroundExecutionManager.RequestAccessAsync visualizzano una finestra di dialogo per richiedere all'utente se aggiungere l'app alla schermata di blocco. Se l'utente acconsente, l'app potrà essere eseguita in background e visualizzare le notifiche nella schermata di blocco.
L'esempio seguente richiede l'autorizzazione per l'aggiunta alla schermata di blocco.
var lockScreenAdded = false; function ClientInit() { // Lock screen is required for raw push notification // background code to run. // if (lockScreenAdded == false) { BackgroundExecutionManager.RequestAccessAsync().done(function (result) { switch (result) { case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity: // // App is allowed to use RealTimeConnection broker // functionality even in low power mode. // lockScreenAdded = true; break; case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity: // // App is allowed to use RealTimeConnection broker // functionality but not in low power mode. // lockScreenAdded = true; break; case BackgroundAccessStatus.Denied: // // App should switch to polling mode (example: poll for email based on time triggers) // WinJS.log && WinJS.log("Lock screen access is denied", "sample", "status"); break; } }, function (e) { WinJS.log && WinJS.log("An error occurred while requesting lock screen access.", "sample", "error"); }); }
Quando crei un'app della schermata di blocco basata su WNS che usa le notifiche push non elaborate, lo stato BackgroundAccessStatus della tua app sarà impostato su AllowedMayUseActiveRealTimeConnectivity dopo la concessione dell'autorizzazione. L'opzione di connettività in tempo reale AllowedWithAlwaysOnRealTimeConnectivity viene usata per la funzionalità trigger di rete e non influenza le app della schermata di blocco basate su WNS che usano le notifiche push non elaborate.
Dopo che l'app sarà stata aggiunta alla schermata di blocco, diventerà visibile nella sezione Personalizza delle Impostazioni PC. Tieni presente che in qualunque momento gli utenti potrebbero decidere di rimuovere la tua app dall'elenco delle app nella schermata di blocco. Per questa ragione devi assicurarti che la tua app funzioni sempre, anche se rimossa dalla schermata di blocco.
Per altre informazioni sulle richieste relative alla schermata di blocco, vedi Panoramica della schermata di blocco e Esempio di app nella schermata di blocco.
Riepilogo e passaggi successivi
Per altre informazioni sulla procedura di registrazione di un canale di notifica push e di invio al server, registra un'attività in background da attivare a partire da una notifica push, quindi invia una notifica push non elaborata al canale e attiva l'attività in background, vedi Come usare WNS per recapitare notifiche push non elaborate a un'app nella schermata di blocco.
Per altre informazioni su come scrivere un'attività in background per ricevere le notifiche di rete in background che utilizzano le notifiche push non elaborate, vedi Guida introduttiva: Come scrivere un'attività in background per le notifiche push non elaborate.
Per altre informazioni su linee guida ed elenchi di controllo per l'uso delle notifiche push non elaborate, vedi
Linee guida ed elenco di controllo per le notifiche non elaborate.
Argomenti correlati
Altre risorse
Funzionalità di rete in background
Linee guida ed elenco di controllo per le notifiche non elaborate
Come usare WNS per recapitare notifiche push non elaborate a un'app nella schermata di blocco
Come scrivere un'attività in background per le notifiche push non elaborate
Panoramica della schermata di blocco
Panoramica delle notifiche push
Supporto dell'app con attività in background
Panoramica di riquadro e notifica di tipo riquadro
Panoramica delle notifiche di tipo avviso popup
Trasferimento di dati in background
Risoluzione dei problemi e debug delle connessioni di rete
Riferimento
Windows.ApplicationModel.Background
Windows.Networking.BackgroundTransfer
Windows.Networking.PushNotifications
Esempi
Esempio di attività in background
Esempio di app nella schermata di blocco