Skip to content

Capacidades nativas y opciones de contenedores ​

Pruebe Fieldnotes, el ejemplo nativo integrado, para seguir drawer, búsqueda, acciones compartidas, guards y un resultado modal en una sola aplicación.

Comience con lo que su aplicación necesita mostrar, luego elija el propietario nativo. NativeScript suministra encabezados de página y controles; el enrutador proporciona identidad de ruta, guards, resultados y coordinación entre los stacks nativos. La aplicación proporciona contenido, acciones comerciales y política de persistencia.

Esta página describe 0.1.0-rc.3, en comparación con la línea base anterior 0.1.0-rc.2. "Existente" a continuación significa que ya está disponible en rc.2; “rc.3” identifica adiciones que requieren el nuevo candidato o la creación de un repositorio local. El paquete sigue siendo un candidato de lanzamiento, no una promesa de estabilidad 1.0. Las guías detalladas siguen siendo la referencia de la API.

Encontrar una capacidad ​

Los ejemplos siguientes son rutas de repositorio. Siga la configuración de demostración código del ejemplo; cree el paquete antes de ejecutar un ejemplo de suscripción voluntaria. La tabla de compatibilidad Alcance y compatibilidad de RC registra las líneas base de dependencia.

NecesidadPropietario/disponibilidadLímite de plataformaGuía y fuente ejecutable
Encabezado nativo y botones de páginaCore ActionBar / ActionItem; barra de navegaciónUIKit existente en iOS, barra de herramientas nativa en Androidbarras nativas; Inbox.vue, demostración normal
Título grande colapsadoCore ActionBar iosLargeTitle;iOS existente con contenido de desplazamiento nativo. La ActionBar estándar Android no tiene una política de barra de aplicaciones de material colapsable equivalenteBarras nativas; bandeja de entrada de demostración normal
Búsqueda de página nativaEnrutador useNativeSearch; existenteiOS UISearchController; Android SearchView en la vista de título de ActionBar existentePropiedad de búsqueda; bandeja de entrada de demostración normal
Acciones de contexto de elementos y vista previaIntegración del menú del enrutador, devoluciones de llamadas de aplicaciones; vista previa/menú nativoiOS existente; Android ventana emergente nativa con acción abierta explícitaMenús contextuales; MessagePreview.vue, bandeja de entrada de demostración normal
Encabezado/menú/acciones de teclado compartidosEnrutador usePageActions / PageActionItem; rc.3Manejo compartido de elegibilidad/ocupado/error en superficies nativas compatibles; la aplicación aún realiza acciones de guardar/compartir/eliminarPage; actions-app.ts, --env.actionsTest
Comandos de tecladoRegistro de enrutador y envío de clave nativa;existente El comportamiento del método abreviado de plataforma/teclado físico difiereKeyboard; navigation-commands.ts, demostración normal
Cajón/menú personalizado persistenteEnrutador RouterDrawerAndroid superposición existente; iOS superposición y presentación adaptable/permanente rc.3Drawer; adaptivedrawer-app.ts, --env.adaptivedrawerTest
Historiales de pestañas independientes / barra lateral de pestañas iPadEnrutador RouterTabs con hosts nativos; pestañas/barra lateralUIKit existentes en iOS 18+; Android Navegación/riel inferior de material con respaldo documentado CoreTabs; App.vue, demostración normal
Lista adaptable/detalleEnrutador RouterSplitView, marcos nativos separados;multiplataforma existente, incluida la geometría de plegado opcional AndroidSplit; bandeja de entrada de demostración normal
UIKit columnas divididas controladasEnrutador RouterUIKitSplitView; experimental, existenteiOS 18+; posee la raíz de la ventana. No es hijo de un drawer o pestañasUIKit split; uikitsplit-app.ts, --env.uikitsplitTest
Modal nativo y resultado escritoPresentación de ruta del enrutador, host modal nativo; El historial internoexistente está separado; el comportamiento/las dependencias de la hoja difierenModals; Compose.vue, demostración normal
Zoom / elementos compartidos / predictivo BackUIKit/Core transiciones y coordinación de enrutadores; El zoomiOS existente necesita 18+ y API de tiempo de ejecución; El progreso Android necesita 14+. Sin controlador interactivo universalTransitions, límites de propiedad; Transitions.vue, Configuración en demostración normal
Diagnóstico de navegaciónRecopilador/exportación de inclusión voluntaria del enrutador; existente. Visor del navegador rc.3Tiempos y estado lógico/nativo, no montón nativo/FPS ni viaje en tiempo realDiagnostics, viewer; Diagnostics.vue, Configuración en demostración normal
Múltiples ventanas nativas / recreaciónUn enrutador por ventana nativa; existenteBase de dependencia publicada y pruebas de reconstrucción de tareas/sesiones específicas de la plataformaWindows; windows-app.ts, --env.windowsTest

Los indicadores se ejecutan desde demo, por ejemplo ns run ios --env.actionsTest o ns run android --env.actionsTest. Los accesorios solo iOS requieren iOS. Los títulos, encabezados, búsquedas y menús grandes no requieren un nuevo subsistema de "Encabezados de navegación nativos".

Elige un contenedor ​

ContenedorLo que poseeÚselo cuando
RouterViewUn Frame nativo y su ruta stackNecesita navegación push/back normal.
RouterTabs + RouterTabLa selección de destino y los fotogramas montados en cada pestañaDestinos deben conservar historiales independientes. sidebar cambia la presentación de pestañas de UIKit; no crea un drawer genérico.
RouterDrawerUn menú alrededor del contenido ya montado; sin historial de ruta propioNecesita contenido de navegación personalizado o un menú persistente adaptable. Sus botones eligen si presionar, abrir un enlace o restablecer un stack.
RouterSplitViewUna disposición de lista/detalle basada en Frame y su adaptaciónUn flujo lógico debe expandirse en paneles. Puede ser contenido drawer o vivir dentro de una pestaña.
RouterUIKitSplitViewLa ventana nativa UISplitViewController y las columnasUsted desea explícitamente la propiedad raíz/columna UIKit y acepta los límites experimentales/de plataforma.

Una barra lateral de pestañas drawer permanente, UIKit y columnas divididas UIKit pueden verse como una barra lateral. Su historia y propiedad del controlador difieren; elegir por esa propiedad, no sólo por la apariencia.

Componer un drawer con destinos independientes ​

Mantenga el contenedor y los marcos nombrados montados. Adapte el presentation del drawer en lugar de cambiar árboles con claves completos con v-if:

vue
<RouterDrawer ref="drawer" presentation="auto" :breakpoint="840">
  <template #drawer>
    <StackLayout>
      <Button text="Inbox" @tap="router.openLink('/')" />
      <Button text="Settings" @tap="router.openLink('/settings')" />
    </StackLayout>
  </template>
  <RouterTabs>
    <RouterTab name="inbox" title="Inbox">
      <RouterView name="inbox" />
    </RouterTab>
    <RouterTab name="settings" title="Settings">
      <RouterView name="settings" initial="/settings" />
    </RouterTab>
  </RouterTabs>
</RouterDrawer>

Este fragmento pertenece a una aplicación instalada con un enrutador. Configure links.frame para elegir settings para /settings y inbox en caso contrario; , la guía drawer, y el accesorio drawer ejecutable , proporcionan la configuración completa. openLink selecciona el destino propietario así como su stack. Una navegación exitosa cierra una superposición drawer; un guard rechazado lo deja abierto. Seleccionar un destino no es un restablecimiento del historial implícito.

UComposición no compatible: <RouterDrawer><RouterUIKitSplitView /></RouterDrawer> solicita a dos contenedores que posean raíces nativas incompatibles. Utilice RouterSplitView dentro de drawer, o haga de RouterUIKitSplitView la raíz de la ventana y diseñe sus columnas allí. No vuelva a montar un RouterView para simular una transición; Al hacerlo, se descarta su historia nativa y la identidad de la página.

Estado, enfoque y accesibilidad ​

Un Page retenido mantiene su estado Vue mientras otra página lo cubre. usePageState opta por un estado serializable pequeño para restauración después de la terminación del proceso; no conserva promesas ni objetos nativos. La propiedad de la consulta de búsqueda pertenece a la aplicación y la activación de la búsqueda debe apuntar a la página elegible actual. Las acciones Page también rechazan la ejecución de un propietario cubierto, inactivo o enajenado.

Utilice botones nativos con etiquetas de accesibilidad claras para destinos drawer, mantenga una alternativa de Menú/Back a los gestos y declare objetivos de enfoque con enfoque de navegación. Honor Reducir el movimiento. Las comprobaciones automatizadas de la jerarquía nativa no son evidencia de que VoiceOver/TalkBack esté enfocado. Cada informe de validación vinculado establece sus límites.

Las propuestas no son capacidades enviadas ​

La investigación de transiciones interactivas propone límites, no una API común nueva ni una integración con Jolt. La vista previa de Android gestionada por Core requiere una versión candidata upstream fijada y aún no publicada; Core 9.1.3 usa el comportamiento alternativo. Esta descripción no promete una barra Material colapsable en Android, transporte de diagnósticos en vivo ni paridad de gestos para cualquier host personalizado.

Publicado bajo la licencia MIT.