Altri modi per usare la funzione Navigate

Completato

Esistono molti modi per spostarsi nella propria app oltre al semplice utilizzo della proprietà OnSelect di un controllo pulsante o icona. Questa unità presenta tre tecniche comuni: la proprietà OnSuccess di un controllo Form, la proprietà OnTimerEnd di un controllo Timer e la proprietà OnChange di un controllo Dropdown.

Spostamento con OnSuccess

Per i progettisti, una considerazione sull'esperienza utente è fornire un feedback agli utenti che inviano modifiche ai dati. Power Apps offre gli strumenti adatti per fornire tale feedback. Se si inserisce una schermata Success nella propria app, si vuole che gli utenti vi siano indirizzati solo quando Power Apps registra correttamente i dati aggiornati. Come si procede?

Per prima cosa, individuare la schermata Success in Nuova schermata>Modelli. Quindi, aggiungerla all'app.

Screenshot dei modelli per le nuove schermate.

Successivamente, trovare il modulo e andare alla proprietà OnSuccess. È importante rimandare l'utente alla schermata Success solo se Power Apps registra correttamente i dati. Nella proprietà OnSuccess è possibile aggiungere una funzione Navigate con il nome della schermata Success, ad esempio:

Navigate(‘Success Screen’, ScreenTransition.Fade)

Si vorrà quindi che gli utenti possano tornare indietro a un'altra schermata. Una buona tecnica in questo senso (oltre a creare un pulsante o un'icona selezionabile) è rappresentata dall'aggiunta di un controllo Timer.

Spostamento con OnTimerFine

L'uso di un controllo Timer è un modo per facilitare lo spostamento degli utenti nell'app. Allo scadere del tempo, la funzione Navigate passa alla schermata designata. Nell'esempio presente, il controllo Timer consentirebbe all'utente di vedere il messaggio di operazione completata per alcuni secondi e quindi di tornare alla schermata del catalogo.

Il controllo Timer è visibile quando lo si aggiunge all'app ed è impostato su una durata di 60.000 millisecondi o 60 secondi. La proprietà AutoStart è disattivata, il che significa che la si dovrebbe avviare creando un trigger. Nella modalità predefinita, con qualche correzione, la si può impostare modo che si comporti come desiderato. Si farà pratica nell'esercizio della prossima unità, ma intanto ecco un riepilogo dei passaggi:

  1. Inserire un controllo Timer.

  2. Impostare la proprietà AutoStart su true.

  3. Impostare la proprietà Duration su 4000 (quattro secondi).

  4. Impostare la proprietà OnTimerEnd su Navigate('<yourScreenName>').

  5. Impostare la proprietà Visible su false.

Con AutoStart impostato su true, il controllo Timer viene avviato quando l'utente giunge nella schermata in modalità di anteprima o di riproduzione. Dopo quattro secondi si attiva la funzione Navigate, inviando l'utente a un'altra schermata.

Spostamento con OnChange

Un'altra buona tecnica di spostamento consiste nell'aggiungere alla propria app un menu o un controllo Dropdown. Si potrebbe aggiungere la funzionalità di spostamento con elenco a discesa a una singola schermata e quindi copiarla in altre schermate dell'app.

Un controllo Dropdown usa una tabella di dati (tipo di dati: Table). Quindi, nella proprietà Items si può inserire qualsiasi tabella di dati che si desidera. Se sono solo due le schermate tra cui spostarsi, è possibile inserire una tabella nella proprietà Items del controllo Dropdown come indicato di seguito:

["","Catalog", "Admin"]

Le parentesi quadre indicano una tabella di dati e il codice ha lo stesso significato di questo esempio:

Table({Value: ""},{Value: "Catalog"},{Value: "Admin"})

Le parentesi quadre offrono un modo più semplice per immettere gli stessi dati.

Si è aggiunta una stringa di testo vuota ("") come primo valore nella tabella. Lo si assegna come proprietà Default.

Una volta definita la proprietà Items, è possibile modificare la proprietà OnChange del controllo Dropdown.

Suggerimento

Attenzione ad aggiornare la proprietà corretta del controllo Dropdown. È facile commettere l'errore di aggiornare la proprietà OnSelect. Ricordare che la proprietà OnSelect viene inizializzata quando si seleziona il controllo, non quando si modifica il controllo. Assicurarsi di aggiornare la proprietà OnChange in un'istanza come questa.

Il modo più efficiente per aggiornare la proprietà OnChange per un controllo Dropdown consiste nell'usare una funzione Switch e nel fare riferimento alla stessa mediante la funzione Self. Si può comunque usare anche una funzione If. Switch e If sono entrambi un modo per valutare una condizione e quindi eseguire un'azione.

Nell'app Macchine Contoso Coffee, ad esempio, il controllo Dropdown avrebbe il seguente codice come proprietà OnChange:

Switch(Self.SelectedText.Value,
"Catalog",Navigate('Catalog Screen',ScreenTransition.Cover),
"Admin",Navigate('Admin Screen',ScreenTransition.Cover)
);
Reset(Self)

L'istruzione Switch valuta un valore particolare per vedere se corrisponde a uno dei risultati, quindi esegue un'azione. Nell'esempio precedente, Self.SelectedText.Value è il valore selezionato nel controllo Dropdown. Se questo valore è Catalog, la funzione Switch esegue lo spostamento nella schermata del catalogo. Se invece il valore è Admin, la funzione Switch esegue lo spostamento nella schermata di amministrazione.

Switch esegue solo una singola condizione che dipende dal valore corrispondente. Quindi è l'ideale quando si hanno molte possibili linee d'azione basate su un unico valore.

Infine, si usa la funzione Reset per reimpostare il controllo Dropdown sul valore Default di "" (stringa vuota).

Se non tutti i concetti sono chiari, nessun problema. Li si esaminerà di nuovo nell'esercizio della prossima unità.