Come gestire l'attivazione da una notifica di tipo avviso popup (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 ]

Nota  Se non usi JavaScript, vedi Come gestire l'attivazione da una notifica di tipo avviso popup (XAML).

 

Questo argomento mostra le azioni da eseguire in risposta al clic su una notifica di tipo avviso popup inviata dall'app. L'app deve rispondere visualizzando l'interfaccia utente specifica dell'avviso popup. L'app viene in genere avviata in un contesto o in una visualizzazione correlata al contenuto dell'avviso popup. Questa operazione viene eseguita attraverso una stringa di attivazione inclusa nel payload dell'avviso popup che viene passato all'app come argomento dell'evento di attivazione. Ecco di seguito il flusso di dati di base:

  1. Il servizio Web o l'app crea e invia il payload dell'avviso popup, inclusa la stringa di avvio
  2. L'avviso popup viene generato e/o inviato al centro operativo
  3. L'utente seleziona l'avviso popup (clic o tocco)
  4. Viene generato l'evento attivato
  5. Il gestore dell'evento attivato dell'app legge la stringa di avvio
  6. L'app viene avviata tramite i parametri specificati nella stringa di avvio

Nota  Quando verifichi la funzionalità del codice della notifica di tipo avviso popup con Microsoft Visual Studio, devi usare l'impostazione di debug Computer locale o Computer remoto in un computer Windows x86, x64 o Windows Runtime. Non puoi usare l'opzione della funzione di debug Simulatore di Visual Studio, poiché in tal caso il codice verrà compilato ed eseguito nel simulatore ma l'avviso popup non apparirà.

 

Cosa sapere

Tecnologie

  • Windows Runtime

Prerequisiti

Per comprendere questo argomento, avrai bisogno:

Istruzioni

Passaggio 1: Includi i dati di attivazione nel payload dell'avviso popup

Quando l'app viene attivata attraverso una notifica di tipo avviso popup, è necessario specificare informazioni correlate al contenuto dell'avviso popup. L'app rifletterà quindi tale contenuto avviandosi in una visualizzazione associata e non in quella predefinita. Quando l'app o il servizio Web crea l'avviso popup, usa l'attributo launch per specificare le informazioni relative all'attivazione. Pensa alla stringa come a un elemento analogo agli argomenti della riga di comando. La stringa può contenere qualsiasi informazione interpretabile dall'app, purché non causi l'invalidità del payload XML. Ricorda che le dimensioni totali del payload XML dell'avviso popup, inclusa la stringa di avvio, non può superare 5 KB.

Se non includi una stringa di attributo di avvio, l'app verrà avviata normalmente anche se l'utente l'ha avviata dalla schermata Start.

In questo passaggio presupponiamo la presenza di un oggetto XmlDocument creato in precedenza denominato toastXml. In questo esempio viene creato l'attributo launch, viene assegnato il relativo valore stringa e viene aggiunto al payload XML della notifica di tipo avviso popup. Per informazioni sulla creazione della notifica di tipo avviso popup completa, vedi Guida introduttiva: Invio di un aggiornamento di riquadro.


var launchAttribute = toastXml.createAttribute("launch");
launchAttribute.value = "{\"myContext\":\"12345\"}";
var toastNode = toastXml.selectSingleNode("/toast");
toastNode.attributes.setNamedItem(launchAttribute);

Il codice riportato sopra genera il codice XML seguente, in base al contenuto dell'elemento visual definito inGuida introduttiva: Invio di una notifica di tipo avviso popup.


<toast launch="{&quot;myContext&quot;:&quot;12345&quot;}">
    <visual>
        <binding template="ToastImageAndText01">
            <image id="1" src="ms-appx:///images/redWide.png" alt="red graphic"/>
            <text id="1">Hello World!</text>
        </binding>
    </visual>
</toast>

Passaggio 2: Eseguire la registrazione all'evento "activated"

Quando l'utente fa clic sull'avviso popup o lo seleziona tramite tocco, viene avviata l'app associata, generando il relativo evento activated. L'app deve essere registrata attraverso la funzione addEventListener per essere informata dell'evento.

Nota  Se non includi una stringa con attributo di avvio nell'avviso popup e l'app è già in esecuzione quando l'avviso popup viene selezionato, l'evento activated non viene generato.

 

WinJS.Application.addEventListener("activated", onActivatedHandler, false);

Passaggio 3: Implementare un gestore per l'evento "activated" dell'avviso popup

Il gestore dell'evento registrato riceve tutti gli eventi di attivazione, indipendentemente dal tipo di attivazione. La proprietà kind inclusa nella notifica dell'evento indica il tipo di evento di attivazione. Quando l'utente fa clic su un avviso popup con l'attributo launch specificato nel payload XML, viene generato un evento di attivazione di tipo launch. Si tratta dello stesso evento che viene generato quando un utente tocca un riquadro primario o secondario di un'app.

La stringa di attivazione specificata attraverso l'attributo launch nel passaggio 1 è inclusa nella proprietà arguments della notifica dell'evento.

Questo esempio mostra la struttura del gestore dell'evento attivato registrato nel passaggio 2.


function onActivatedHandler(args) {
    if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
        var launchString = args.detail.arguments;

        // Handle activation as required for your app, using the launch string.
    }
}

Argomenti correlati

Esempio di notifiche per avvisi popup

Windows.UI.Notifications API namespace

Panoramica delle notifiche di tipo avviso popup

Linee guida ed elenco di controllo per le notifiche di tipo avviso popup

Guida introduttiva: Invio di una notifica di tipo avviso popup

Catalogo di modelli di avviso popup

Schema XML per avvisi popup