Condividi tramite


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.

JJ679949.wedge(it-it,WIN.10).gifEffettuare la registrazione come app nella schermata di blocco

  1. 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" />
    
  2. 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>
    
  3. 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" />
    
  4. 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

Aggiunta del supporto di rete

Funzionalità di rete in background

Panoramica delle notifiche

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

HttpClient

HttpClientHandler

IXMLHTTPRequest2

System.Net.Http

Windows.ApplicationModel.Background

Windows.Networking.BackgroundTransfer

Windows.Networking.PushNotifications

Windows.Networking.Sockets

Esempi

Esempio di attività in background

Esempio di app nella schermata di blocco

Esempio di notifiche push e periodiche sul lato client

Esempio di notifiche non elaborate