Codice generato dalla creazione guidata delle notifiche push

Applies to Windows and Windows Phone

Usando una procedura guidata in Visual Studio puoi generare notifiche push da un servizio mobile creato con i servizi mobili di Microsoft Azure. La procedura guidata di Visual Studio genera codice che ti aiuta a iniziare. Questo argomento spiega in che modo la procedura guidata modifica il tuo progetto, cosa fa il codice generato, come utilizzare tale codice e cosa fare dopo per ottenere il massimo dalle notifiche push. Vedi Panoramica di Servizi notifica Push Windows (WNS).

Modifiche apportate dalla procedura guidata al progetto

La creazione guidata delle notifiche push modifica il tuo progetto nei modi seguenti:

  • Aggiunge un riferimento al client gestito dei servizi mobili (MobileServicesManagedClient.dll). Non applicabile ai progetti JavaScript.
  • Aggiunge a una sottocartella dei servizi un file di nome push.register.cs, push.register.vb, push.register.cpp o push.register.js.
  • Crea nel server di database una tabella di canali per il servizio mobile. Tale tabella contiene le informazioni necessarie per inviare le notifiche push alle istanze dell'app.
  • Crea script per quattro funzioni: ovvero delete, insert, read e update.
  • Crea uno script con un'API personalizzata, notifyallusers.js, che invia una notifica push a tutti i client.
  • Aggiunge una dichiarazione al file App.xaml.cs, App.xaml.vb o App.xaml.cpp, oppure a un nuovo file service.js nel caso dei progetti JavaScript. Tale istruzione dichiara un oggetto MobileServiceClient, che contiene le informazioni necessarie per connettersi al servizio mobile. Questo oggetto MobileServiceClient, di nome MyServiceNameClient, è accessibile da tutte le pagine dell'app tramite il nome App.MyServiceNameClient.

Il file services.js contiene il codice seguente:


// http://go.microsoft.com/fwlink/?LinkID=290993&clcid=0x409
var <mobile-service-name>Client = new Microsoft.WindowsAzure.MobileServices.MobileServiceClient(
                "https://<mobile-service-name>.azure-mobile.net/",
                "<your client secret>");

Registrazione per le notifiche push

In genere non è necessario modificare il codice di push.register.*, ma è utile sapere a cosa serve. All'avvio dell'app, il codice crea un canale WNS e vi fa riferimento tramite il relativo URI (Uniform Resource Identifier) e il token InstallationId dell'app installata. L'URI fa riferimento al canale, non al servizio mobile, e InstallationId è l'ID hardware specifico dell'app (ASHWID), che identifica in modo univoco l'istanza installata dell'app nell'hardware dell'utente. Vedi Linee guida su come usare l'ID hardware specifico dell'app (ASHWID) per implementare la logica dell'app per dispositivo. Questa informazione viene inserita nella tabella dei canali creata dalla procedura guidata nel server di database.

Windows Store tiene traccia delle istanze installate della tua app e fornisce un canale per le notifiche push. Windows Store richiede solo il token del pacchetto crittografato, ovvero InstallationId, che fa riferimento alla specifica istanza installata della tua app nel dispositivo hardware dell'utente. Vedi Classe PushNotificationChannelManager.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Microsoft.WindowsAzure.MobileServices;
using Newtonsoft.Json.Linq;

// http://go.microsoft.com/fwlink/?LinkId=290986&clcid=0x409

namespace App2
{
    internal class mymobileservice1234Push
    {
        public async static void UploadChannel()
        {
            var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

            try
            {
                await App.mymobileservice1234Client.GetPush().RegisterNativeAsync(channel.Uri);
                      await App.mymobileservice1234Client.InvokeApiAsync("notifyAllUsers");

            }
            catch (Exception exception)
            {
                HandleRegisterException(exception);
            }
        }

        private static void HandleRegisterException(Exception exception)
        {

        }
    }
}


Script lato server

Gli script lato server vengono eseguiti quando viene effettuata un'operazione di eliminazione, inserimento, lettura o aggiornamento. Gli script non implementano tali operazioni, ma vengono eseguiti quando una chiamata dal client all'API REST di Windows Mobile attiva tali eventi. Gli script passano quindi il controllo alle operazioni vere e proprie, chiamando request.execute o request.respond per generare una risposta al contesto di chiamata. Vedi le informazioni di riferimento sull'API REST dei servizi mobili di Microsoft Azure.

Nello script lato server è disponibile una vasta gamma di funzioni. Vedi l'argomento relativo agli script lato server dei servizi mobili di Microsoft Azure. Per informazioni su tutte le funzioni disponibili, vedi le informazioni di riferimento sugli script lato server dei servizi mobili.

Viene creato anche il codice dell'API personalizzata seguente in notifyallusers.js:



exports.post = function(request, response) {
    response.send(statusCodes.OK,{ message : 'Hello World!' })
    
    // The following call is for illustration purpose only
    // The call and function body should be moved to a script in your app
    // where you want to send a notification
    sendNotifications(request);
};

// The following code should be moved to appropriate script in your app where notification is sent
function sendNotifications(request) {
    var payload = '<?xml version="1.0" encoding="utf-8"?><toast><visual><binding template="ToastText01">' +
        '<text id="1">Sample Toast</text></binding></visual></toast>';
    var push = request.service.push; 
    push.wns.send(null,
        payload,
        'wns/toast', {
            success: function (pushResponse) {
                console.log("Sent push:", pushResponse);
            }
        });
}


La funzione sendNotifications invia una singola notifica sotto forma di avviso popup. Puoi usare anche altri tipi di notifiche push.

Suggerimento  Per informazioni su come ottenere assistenza nella modifica degli script, vedi l'argomento relativo all'abilitazione di IntelliSense per il codice JavaScript lato server.

Tipi di notifiche push

Windows supporta anche notifiche diverse dalle notifiche push. Per informazioni generali sulle notifiche, vedi Recapito di notifiche push, periodiche e pianificate.

Le notifiche di tipo avviso popup sono facili da usare e puoi vederne un esempio nel codice Insert.js della tabella dei canali generata automaticamente. Se prevedi di usare notifiche di tipo riquadro o badge, devi creare un modello XML per il riquadro e il badge, quindi specificare la codifica delle informazioni incluse nel modello. Vedi Uso di riquadri, notifiche e notifiche di tipo avviso popup.

Poiché è Windows a rispondere alle notifiche push, la maggior parte di queste notifiche può essere gestita anche quando l'app non è in esecuzione. Ad esempio, una notifica push può segnalare all'utente la presenza di un nuovo messaggio e-mail anche se l'app per e-mail locale non è in esecuzione. Windows gestisce la notifica di tipo avviso popup visualizzando un messaggio, ad esempio la prima riga di un messaggio di testo. Windows gestisce le notifiche di tipo riquadro o badge aggiornando il riquadro animato di un'app in modo da indicare il numero dei nuovi messaggi di posta elettronica. In questo modo puoi chiedere agli utenti della tua app di controllare le nuove informazioni. La tua app può ricevere notifiche non elaborate mentre è in esecuzione e tu puoi usarle per inviare dati all'app. Se l'app non è in esecuzione, puoi configurare un'attività in background per monitorare le notifiche push.

Devi usare le notifiche push in base alle linee guida per le app di Windows Store, poiché tali notifiche consumano le risorse dell'utente e, se sono troppe, possono costituire una distrazione. Vedi Linee guida ed elenco di controllo per le notifiche push.

Se utilizzi le notifiche push per aggiornare i riquadri animati, devi seguire anche le indicazioni disponibili nell'articolo Linee guida ed elenco di controllo per i riquadri e le notifiche.

Passaggi successivi

Uso di WNS

Puoi chiamare WNS direttamente se i servizi mobili non offrono flessibilità sufficiente, se desideri scrivere il codice server in C# o Visual Basic oppure se disponi già di un servizio cloud e vuoi inviare notifiche push da quest'ultimo. Chiamando direttamente WNS puoi inviare notifiche push dal tuo servizio cloud personalizzato, ad esempio un ruolo di lavoro responsabile di monitorare i dati di un database o un altro servizio Web. Il tuo servizio cloud deve autenticarsi con WNS per inviare notifiche push alle tue app. Vedi Come eseguire l'autenticazione con Servizi notifica Push Windows (JavaScript) o (C#/C++/VB)

Per inviare notifiche push puoi anche eseguire un'attività pianificata nel tuo servizio mobile. Vedi l'articolo relativo alla pianificazione di processi ricorrenti nei servizi mobili.

Avviso  Dopo aver eseguito la creazione guidata delle notifiche push, non ripeterla una seconda volta per aggiungere il codice di registrazione per un altro servizio mobile. Se esegui la procedura guidata più di una volta per progetto, viene generato codice che determina l'invio di chiamate sovrapposte al metodo CreatePushNotificationChannelForApplicationAsync, il che comporta la restituzione di un'eccezione di runtime. Se vuoi effettuare la registrazione per notifiche di push per più servizi mobili, esegui la procedura guidata una volta e quindi riscrivi il codice di registrazione per evitare che vengano eseguite contemporaneamente più chiamate al metodo CreatePushNotificationChannelForApplicationAsync. A questo scopo puoi ad esempio spostare il codice generato dalla procedura guidata in push.register.* (inclusa la chiamata a CreatePushNotificationChannelForApplicationAsync) all'esterno dell'evento OnLaunched, ma le specifiche per questa operazione dipendono dall'architettura dell'app.

Argomenti correlati

Panoramica di WNS
Panoramica delle notifiche non elaborate
Connessione ai servizi mobili di Microsoft Azure (JavaScript)
Connessione ai servizi mobili di Microsoft Azure (C#/C++/VB)
Guida introduttiva: Aggiunta di notifiche push per un servizio mobile (JavaScript)
Guida introduttiva: Aggiunta di notifiche push per un servizio mobile (C#/C++/VB)

 

 

Mostra:
© 2014 Microsoft