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:
- Il servizio Web o l'app crea e invia il payload dell'avviso popup, inclusa la stringa di avvio
- L'avviso popup viene generato e/o inviato al centro operativo
- L'utente seleziona l'avviso popup (clic o tocco)
- Viene generato l'evento attivato
- Il gestore dell'evento attivato dell'app legge la stringa di avvio
- 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:
- Conoscenza operativa di termini e concetti correlati alle notifiche di tipo avviso popup. Per altre informazioni, vedi Panoramica delle notifiche di tipo avviso popup.
- Per inviare o ricevere notifiche di tipo avviso popup, devi impostare su "True" ("Sì" nell'editor del manifesto di Visual Studio) l'opzione Popup supportati nel manifesto dell'app. Per altre informazioni, vedi Guida introduttiva: Creazione di un riquadro predefinito tramite l'editor del manifesto di Visual Studio e Come acconsentire esplicitamente all'invio di notifiche di tipo avviso popup.
- Familiarità con XML e la relativa manipolazione tramite API Document Object Model (DOM).
- Familiarità con lo schema XML per avvisi popup. Per altre informazioni, vedi Schema degli avvisi popup.
- Capacità di creare un'app di Windows Store di base in JavaScript usando le API Windows Runtime. Per ulteriori informazioni, vedi Creare la prima app di Windows Store scritta in JavaScript.
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="{"myContext":"12345"}">
<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