Condividi tramite


Come scrivere un'attività in background per le notifiche push 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 scrivere un'attività in background per ricevere le notifiche di rete in background che utilizzano le notifiche push non elaborate in un'app di Windows Runtime nella schermata di blocco. L'argomento illustra come scrivere un'attività in background per la funzionalità delle notifiche push non elaborate di Windows 8.1 per un'app di Windows Runtime.

Cosa sapere

Tecnologie

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.

    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.

Istruzioni

Scrivere l'attività in background

Un passaggio importante per rendere la tua app sempre raggiungibile consiste nel fornire il codice dell'app che verrà eseguito in concomitanza con la notifica push non elaborata. Ad esempio, nel caso di un'app per email che usa le notifiche push non elaborate in ingresso per segnalare l'arrivo di nuovi messaggi sul server, l'app deve eseguire codice per elaborare i dati nella notifica push non elaborata. Questi dati possono contenere un elenco di nuovi messaggi email ricevuti per inviare una notifica all'utente. L'app può inoltre programmare di connettersi al server email e scaricare le nuove email dal server alla successiva occasione in cui non sarà più sospesa. Questo processo avviene nell'attività in background.

Tutte le attività in background sono implementate da una funzione eseguita quando l'app è stata registrata per una notifica push non elaborata, come indicato nel manifesto dell'app con la specifica del file di origine JavaScript contenente una singola funzione.

L'esempio che segue mostra la funzione che viene eseguita quando viene attivata un'attività in background da una notifica push non elaborata.

(function () {
    // Get the background task details
    var backgroundTask = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
    var settings = Windows.Storage.ApplicationData.current.localSettings;
    var taskName = backgroundTask.task.name;

    console.log("Background task \"" + taskName + "\" starting...");

    // Store the content received from the notification so it can be retrieved
    // from the UI.
    var notificationDetails = backgroundTask.triggerDetails;
    settings.values[taskName] = notificationDetails.content;

    console.log("Background \"" + taskName + "\" completed!");

    // Close the instance running the task
    close();
})();

Nota  Non puoi inserire riferimenti agli elementi dell'interfaccia utente della tua app in un'attività in background, poiché questi elementi nella tua app non sono in esecuzione. Quando il tuo codice viene eseguito nell'attività in background, puoi ricevere i dati della notifica push non elaborata, analizzarli, elaborarli e generare una notifica per l'utente.

 

La durata dell'attività in background è controllata dalla funzione che implementa l'attività in background. Quando un'app abbandona la funzione, viene sospesa.

Quando viene attivata un'attività in background dell'app, il sistema operativo si assicura che la sincronizzazione appropriata consegni all'app i dati della notifica push non elaborata o restituisca un errore (ad esempio di connessione interrotta). Allo stesso modo, al termine dell'attività in background l'app dovrà assicurarsi che tutte le notifiche vengano generate prima che l'app venga sospesa.

Sebbene le attività in background riguardino prevalentemente le app sospese, nel caso delle app configurate con attività in background si assisterà all'attivazione di queste attività in background anche mentre tali app sono in primo piano.

Passaggi precedenti

Per altre informazioni su come creare un'app della schermata di blocco per ricevere le notifiche di rete in background che utilizzano le notifiche push non elaborate, vedi Come creare un'app della schermata di blocco che usa notifiche push in background non elaborate.

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 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

Linee guida ed elenco di controllo per le notifiche non elaborate

Come eseguire l'autenticazione con Servizi notifica Push Windows (WNS)

Come usare WNS per recapitare notifiche push non elaborate a un'app nella schermata di blocco

Panoramica della schermata di blocco

Panoramica delle notifiche push

Come creare di un'app della schermata di blocco che usa notifiche push in background non elaborate

Supporto dell'app con attività 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