Navegación con Orquestador
La navegación solo incluye un nivel con módulos.
La app padre en el nivel raíz funciona como un orquestador y cierra un módulo antes de abrir el módulo siguiente.
Todos los módulos están en el mismo nivel y tienen la misma app padre en el nivel raíz.
Importante
La principal diferencia entre la navegación con ramas y la navegación con orquestador radica en la pila de navegación. En la navegación con ramas, la app padre puede invocar y mostrar un módulo sin cerrar previamente el primero, y todos los módulos permanecen activos en la pila de navegación hasta que se cierran. En la navegación con orquestador, la app padre debe cerrar un módulo antes de mostrar el siguiente.
En esta sección puedes ver los dos aspectos principales del caso de navegación: primero, la navegación en sí, es decir, cuando se invoca el módulo y aparece en pantalla y luego, cuando se cierra, a qué predecesor (ya sea módulo o app padre) regresa. Luego, la interacción con la interfaz de usuario, que se refiere al impacto visual de la navegación en la app, es decir, las pantallas que se mostrarán al usuario de la app.
La siguiente imagen muestra la navegación por pasos y cómo el usuario verá la navegación en la app. En este caso, la raíz es la app padre y desde esa app, invocaste módulos mod2 y mod1.
Nota
Utiliza la barra de desplazamiento a la derecha para ver todas las columnas de la tabla siguiente.
Acción ejecutada | Paso de navegación | Syntax | Descripción | Explicación y ejemplos |
---|---|---|---|---|
raíz abre mod1 | start (1) | LMOD1(INTERFACE1) | Estás en el nivel raíz de la app padre e invocas el módulo mod1. | Estás en la pantalla deinicio de sesión de la app. Necesitas reutilizar el contenido del módulo mod1, que contiene un flujo de pantallas de onboarding. Para reutilizarlo, debes invocar la interfaz de pantalla del módulo desde un componente dentro de la pantalla de inicio de sesión. Para este ejemplo, defines que, cuando el usuario de la app haga clic en el botónIniciar sesión, se invoca el contenido del módulo (es decir, la interfaz de tipo pantalla). Por lo tanto, seleccionas el componente button, te diriges al panel derecho y luego a la pestaña Actions. En el atributo On Click de la sección Events and Actions, haces clic en el ícono de tres puntos verticales. Se abre el modal Create new link y seleccionas Module Screen desde el menú desplegable. Luego, seleccionas la interfaz de tipo de pantalla que deseas vincular y haces clic enReady to link. Para este ejemplo, la sintaxis mostrada será L28E76850A1C48D8F4D2700A4FBB027(HOME), dónde L representa la interfaz de tipo pantalla, 28E76850A1C48D8F4D2700A4FBB027 representa la interfaz de pantalla seleccionada, y (HOME) representa la vista del contenedor donde se abre la interfaz de tipo pantalla. |
root -> mod1(root) | N/A | N/A | La interfaz del módulo mod1 se muestra en la pantalla. La interfaz se invoca desde la app raíz (app padre). | La app muestra la vista de contenedor que representa la primera pantalla de la interfaz de pantalla invocada del módulo mod1 . El flujo de pantallasMod1 contiene tres pantallas. |
root ejecuta evento | N/A | E__CURRENT_MODULE_INTERFACE__ (ONSUCCESS)|E__CURRENT_MODULE_ INTERFACE__(CLOSE) | Módulo mod1 (nivel 1) indica una acción a la app padre que debe ejecutarse ante un evento On Success en el módulo. Además, el módulo mod1 ejecutará un evento para cerrarse a sí mismo. La app padre ejecuta la acción definida como se indica en elmod1. NotaGeneralmente la acción a ejecutar por la app padre es un proceso que contiene como último paso un bloque NEXT que muestra el siguiente módulo. | Estás en la tercera pantalla del flujo de pantallas de onboarding del módulo instanciado. En esta pantalla, debes configurar dos eventos concatenados: primero, un evento que indica a la app principal que se ejecutó con éxito una acción en el módulo; luego, un evento que indica al módulo mod1 que se cierre a sí mismo. Para este ejemplo, defines que este mensaje debe comunicarse a la app padre cuando el usuario hace clic en un ícono de flecha. Por lo tanto, seleccionas el componente icon que representa la flecha, te diriges al panel derecho y luego a la pestaña Actions. En el atributo On Click de la sección Events and Actions, configuras el mensaje de interfaz ONSUCCESS como se explicó anteriormente. Ante este mensaje se ejecutará un proceso que invoca al módulo mod2. Además, debes cerrar el módulo mod1, para que el flujo de pantallas en este módulo no aparezca en la pantalla de la app y se elimine de la pila de navegación. Para cerrar el módulo, debes concatenar el segundo evento en el mismo atributo On Click. Para configurar el segundo evento, ingresa un | (barra vertical) e ingresa manualmente la sintaxis del mensaje de cierre. NotaEn este paso, los eventos se concatenan (usando el | símbolo) y el segundo evento se ejecuta inmediatamente después del primero. |
root abre mod2 (ONSUCCESS) | start (2) | LMOD2(INTERFACE2) | Cuando se ejecuta la acción definida, la app padre muestra el módulo mod2. | Ahora que el mensaje de interfaz ON SUCESS se comunicó desde el módulo mod1, la app padre invoca el módulo mod2. Debes invocar el módulo desde el evento On Success en la app padre. Como resultado, cuando mod1 indica el mensaje On Success, la app padre está lista para invocar y luego mostrar el módulo mod2. |
root-> mod1(root)-> mod2(root) | N/A | N/A | La app muestra el módulo mod2. | La app muestra la vista de contenedor que representa la primera pantalla de la interfaz de pantalla invocada del módulo mod2. Para este ejemplo, la primera vista del contenedor es una pantalla que muestra un mensaje debienvenida junto con una lista de enlaces útiles. |
modo 1 self-close | close (2) | E__CURRENT_MODULE_ INTERFACE__(CLOSE) | Ahora el módulo mod1 se cierra a sí mismo. En este momento, la app padre muestra elmod2 en la pantalla. NotaCuando el módulo mod1 se cierra a sí mismo, sólo afecta la lógica de la navegación pero no afecta el funcionamiento ni la visualización de las pantallas de la app. | El módulo mod1 ejecuta el evento para cerrarse a sí mismo, como se definió previamente. |
root-> mod2(root) | N/A | N/A | La app muestra el módulo mod2 y mod1 desaparece de la pila de navegación. | El módulo mod1 cerrado y ahora la app padre muestra el módulo mod2 . |
mod2 back close | back (3) | E__CURRENT_MODULE_ INTERFACE__(CLOSE) | Estás en el módulo mod2 (nivel 1) y configuras un evento para cerrarlo. | Tienes que cerrar el módulo mod2. Para cerrar el módulo, debes establecer un evento en el módulo que indique que la pantalla actual abierta (es decir, la pantalla del mensaje de bienvenida de la interfaz invocada) se cierre a sí mismo. |
root | N/A | N/A | La app vuelve al nivel raíz (nivel 0) y muestra la pantalla de la app padre. | Configuras eventos para cerrar todos los módulos y ahora el usuario de la app ve la pantalla de la app padre. |