Inicio
Copie una sugerencia de configuración con los pasos de instalación y la guía markdown completa para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-transitions`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/transitions/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalación
Sección titulada “Instalación”Puede utilizar nuestra configuración asistida por IA para instalar el plugin. Agregue las Capgo habilidades a su herramienta de IA utilizando el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego utilice el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-transitions` plugin in my project.Si prefieres la configuración manual, instala el complemento ejecutando los siguientes comandos y sigue las instrucciones específicas de la plataforma a continuación:
-
Instalar el paquete
Ventana de terminal npm install @capgo/capacitor-transitions -
Registrar los componentes web
import '@capgo/capacitor-transitions'; -
Envolver páginas con rutas
<cap-router-outlet platform="auto" swipe-gesture="auto"><cap-page><cap-header slot="header"><h1>Inbox</h1></cap-header><cap-content slot="content"><button>Open message</button></cap-content><cap-footer slot="footer"><nav>Tabs</nav></cap-footer></cap-page></cap-router-outlet> -
Establecer la dirección antes de que tu router cambie de ruta
import { setDirection } from '@capgo/capacitor-transitions/react';setDirection('forward');router.push('/message/42');setDirection('back');router.back();
Configuración de React
Sección titulada “Configuración de React”import { useEffect, useRef } from 'react';import { useNavigate } from 'react-router-dom';import { initTransitions, setDirection, setupPage, setupRouterOutlet } from '@capgo/capacitor-transitions/react';import '@capgo/capacitor-transitions';
initTransitions({ platform: 'auto' });
export function AppShell() { const outletRef = useRef<HTMLElement>(null);
useEffect(() => { if (!outletRef.current) return;
setupRouterOutlet(outletRef.current, { platform: 'auto', swipeGesture: 'auto', }); }, []);
return ( <cap-router-outlet ref={outletRef}> {/* Your router renders cap-page children here. */} </cap-router-outlet> );}
export function InboxPage() { const navigate = useNavigate(); const pageRef = useRef<HTMLElement>(null);
useEffect(() => { if (!pageRef.current) return;
return setupPage(pageRef.current, { onDidEnter: () => console.log('Inbox visible'), }); }, []);
return ( <cap-page ref={pageRef}> <cap-header slot="header"> <h1>Inbox</h1> </cap-header>
<cap-content slot="content"> <button onClick={() => { setDirection('forward'); navigate('/message/42'); }} > Open message </button> </cap-content> </cap-page> );}React JSX TypeScript
Sección titulada “React JSX TypeScript”Importar desde @capgo/capacitor-transitions/react incluye tipificaciones JSX para cap-router-outlet, cap-page, cap-header, cap-contenty cap-footerEn la mayoría de los proyectos de React, esa importación hace que los elementos personalizados sean válidos en TSX automáticamente.
Si TypeScript sigue reportando errores Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements'agregar un archivo de declaración de proyecto:
import '@capgo/capacitor-transitions/react';Para Vite, Create React App y la mayoría de las aplicaciones de React con webpack, colocar ese archivo dentro src/ suficiente. Para Next.js, colóquelo en src/ o la raíz del proyecto y asegúrate de que tsconfig.json lo incluya:
{ "include": ["src", "src/capgo-transitions.d.ts"]}Para configuraciones de TypeScript o webpack personalizadas que utilizan una carpeta separada types/ incluye esa carpeta en su lugar:
{ "include": ["src", "types"]}Deslizar hacia atrás
Sección titulada “Swipe Back”Habilitar o deshabilitar el gesto de borde de iOS desde el marcado:
<cap-router-outlet swipe-gesture="auto"></cap-router-outlet><cap-router-outlet swipe-gesture="true"></cap-router-outlet><cap-router-outlet swipe-gesture="false"></cap-router-outlet>O desde JavaScript:
const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');outlet?.setSwipeGesture(true);outlet?.setSwipeGesture(false);auto Habilita el gesto solo cuando Capacitor informa un tiempo de ejecución nativo de iOS. Durante el gesto, la transición de página sigue el dedo. Cuando el usuario suelta, la transición se completa y solicita a la historia del navegador que retroceda, o cancela y restaura la página actual.
Para mantener un elemento desde que comienza el gesto, agrega data-swipe-gesture-ignore:
<button data-swipe-gesture-ignore>Open drawer</button>Con Navegación Nativa
Sección titulada “Con Navegación Nativa”Usar @capgo/capacitor-transitions con @capgo/native-navigation cuando native debe poseer las barras superior e inferior mientras que el contenido web mantiene la página en movimiento estilo Ionic.
-
Instale y sincronice el paquete de navegación nativa:
ventana de terminal npm install @capgo/native-navigationnpx cap sync -
Configurar el navegador nativo:
import { NativeNavigation } from '@capgo/native-navigation';await NativeNavigation.configure({contentInsetMode: 'css',});await NativeNavigation.setNavbar({title: 'Inbox',backButton: { visible: false },}); -
Mantenga la salida de transición web responsable de las páginas solo:
<cap-router-outlet platform="auto" swipe-gesture="auto"><cap-page><cap-content slot="content" fullscreen><main class="native-page">Inbox content</main></cap-content></cap-page></cap-router-outlet>.native-page {padding-top: var(--cap-native-navigation-top);padding-bottom: var(--cap-native-navigation-bottom);} -
Haga que ambos sistemas se desplacen desde los mismos eventos de router:
import { NativeNavigation } from '@capgo/native-navigation';import { setDirection } from '@capgo/capacitor-transitions/react';import { router } from './router';await NativeNavigation.addListener('navbarBack', () => {setDirection('back');router.back();});async function openMessage(id: string) {setDirection('forward');router.push(`/message/${id}`);await NativeNavigation.setNavbar({title: 'Message',backButton: { visible: true, title: 'Inbox' },});}
No renderice la barra superior nativa nuevamente como un movimiento <cap-header>. Mantén la barra nativa y utiliza @capgo/native-navigation para el contenido de la página WebView debajo de ella. @capgo/capacitor-transitions Sección titulada “Componentes”
Sección titulada “<cap-router-outlet>”
Atributo<cap-router-outlet>
Tipo| Valor por defecto | Descripción | Estilo de animación | Valor por defecto de la plataforma |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | __CAPGO_KEEP_0__ |
duration | number | __CAPGO_KEEP_0__ | Duración de la animación en milisegundos |
keep-in-dom | boolean | true | Conservar páginas inactivas en el DOM |
max-cached | number | 10 | Número máximo de páginas en caché |
swipe-gesture | boolean | 'auto' | 'auto' | Habilitar, deshabilitar o detectar nativamente el gesto de borde de iOS |
Métodos:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
Título de la sección “<cap-page>”Envuelve una página y emite eventos de ciclo de vida:
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
Título de la sección “<cap-content>”| Atributo | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
fullscreen | boolean | false | Deje que el contenido se desplace detrás de la cabecera |
scroll-x | boolean | true | Habilitar desplazamiento horizontal |
scroll-y | boolean | true | Habilitar desplazamiento vertical |
Ayudas de marco
Sección titulada “Ayudas de marco”Los puntos de entrada del marco expuestos ofrecen los mismos ayudantes de núcleo:
import { initTransitions, setDirection, setupPage, setupRouterOutlet } from '@capgo/capacitor-transitions/react';
initTransitions({ platform: 'auto' });setDirection('forward');setupRouterOutlet(element, { platform: 'auto', swipeGesture: 'auto' });setupPage(element, { onWillEnter, onDidEnter, onWillLeave, onDidLeave });Puntos de entrada disponibles:
@capgo/capacitor-transitions/react@capgo/capacitor-transitions/vue@capgo/capacitor-transitions/angular@capgo/capacitor-transitions/svelte@capgo/capacitor-transitions/solid
Siga adelante desde Inicio
Sección titulada “Siga adelante desde Inicio”Si está utilizando Inicio para planificar la migración y operaciones empresariales, conecte con Usando @capgo/capacitor-transiciones para la capacidad nativa en Usando @capgo/capacitor-transiciones, Capgo Empresas para el flujo de trabajo del producto en Capgo Empresas, Alternativas de Plugins de Ionic Empresas para el flujo de trabajo del producto en Alternativas de Plugins de Ionic Empresas, Capgo Alternativas para el flujo de trabajo del producto en Capgo Alternativas, y Capgo Consultoría para el flujo de trabajo del producto en Capgo Consultoría.