Copia le opzioni della pagina
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo 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.
-
Installa il pacchetto
Finestra del terminale npm install @capgo/capacitor-transitions -
Registra i componenti web
import '@capgo/capacitor-transitions'; -
Avvolgi le pagine di routing
<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> -
Assicurati di impostare la direzione prima che il tuo router cambi rotta
import { setDirection } from '@capgo/capacitor-transitions/react';setDirection('forward');router.push('/message/42');setDirection('back');router.back();
Configurazione React
Sezione intitolata “Configurazione 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
Sezione intitolata “React JSX TypeScript”Importazione da @capgo/capacitor-transitions/react include JSX tipizzazioni per cap-router-outlet, cap-page, cap-header, cap-content, e cap-footer. In quasi tutti i progetti React, quella importazione rende gli elementi personalizzati validi in TSX automaticamente.
Se TypeScript segnala ancora Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements', aggiungi un file di dichiarazione del progetto:
import '@capgo/capacitor-transitions/react';Per Vite, Create React App e la maggior parte degli app React webpack, posizionare quel file dentro src/ è sufficiente. Per Next.js, mettilo in src/ o nella radice del progetto e assicurati che tsconfig.json lo includa:
{ "include": ["src", "src/capgo-transitions.d.ts"]}For impostazioni TypeScript o webpack personalizzate che utilizzano una cartella separata, includere quella cartella al posto di: types/ Copia nel portapannino
{ "include": ["src", "types"]}Sottosezione intitolata “Torna indietro”
Abilita o disabilita il gesto di bordo iOS da markup:Copia nel portapannino
<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>Copia nel portapannino
const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');outlet?.setSwipeGesture(true);outlet?.setSwipeGesture(false);auto enables the gesture only when Capacitor reports a native iOS runtime. During the gesture, the page transition follows the finger. When the user releases, the transition either completes and asks the browser history to go back, or cancels and restores the current page.
Copia nel portapannino data-swipe-gesture-ignore:
<button data-swipe-gesture-ignore>Open drawer</button>Con navigazione nativa
Sezione intitolata “Con navigazione nativa”Usa @capgo/capacitor-transitions con @capgo/native-navigation quando la navigazione nativa deve gestire le barre superiore e inferiore mentre il contenuto web mantiene la movimentazione delle pagine di stile Ionic.
-
Installa e sincronizza il pacchetto di navigazione nativa:
Finestra del terminale npm install @capgo/native-navigationnpx cap sync -
Configura il chrome nativo:
import { NativeNavigation } from '@capgo/native-navigation';await NativeNavigation.configure({contentInsetMode: 'css',});await NativeNavigation.setNavbar({title: 'Inbox',backButton: { visible: false },}); -
Mantieni responsabile della transizione web l'uscita per le pagine 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);} -
Gestisci entrambi i sistemi con gli stessi eventi del 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' },});}
Non rendere la barra superiore nativa nuovamente come un movimento <cap-header>. Lascia @capgo/native-navigation mantieni la barra nativa e utilizza @capgo/capacitor-transitions per il contenuto della pagina WebView sottostante.
Componenti
Sezione intitolata “Componenti”<cap-router-outlet>
Sezione intitolata “<cap-router-outlet>”| Attributo | Tipo | Default | Descrizione |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | Stile di animazione |
duration | number | Predefinito del sistema | Durata dell'animazione in millisecondi |
keep-in-dom | boolean | true | Conserva pagine inattive nel DOM |
max-cached | number | 10 | Pagine cache massime |
swipe-gesture | boolean | 'auto' | 'auto' | Abilita, disabilita o rileva il gesto di bordo iOS |
Metodi:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
Sezione intitolata “<cap-page>”Rende una pagina e emette eventi di ciclo di vita:
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
Sezione intitolata “<cap-content>”| Attributo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
fullscreen | boolean | false | Lascia che il contenuto scorra dietro l'intestazione |
scroll-x | boolean | true | Abilita lo scorrimento orizzontale |
scroll-y | boolean | true | Abilita lo scorrimento verticale |
Aiuti del Framework
Sezione intitolata “Aiuti del Framework”Gli entrypoint del framework espongono gli stessi aiuti core:
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 });Disponibili gli entrypoint:
@capgo/capacitor-transitions/react@capgo/capacitor-transitions/vue@capgo/capacitor-transitions/angular@capgo/capacitor-transitions/svelte@capgo/capacitor-transitions/solid
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai utilizzando Getting Started per pianificare la migrazione e le operazioni aziendali, connettilo con Utilizzando @capgo/capacitor-transizioni per la capacità nativa in Utilizzando @capgo/capacitor-transizioni Capgo Azienda per il flusso di lavoro del prodotto in Capgo Azienda Alternative per Plugin di Enterprise di Ionic per il flusso di lavoro del prodotto in Alternative per Plugin di Enterprise di Ionic Capgo Alternative per il flusso di lavoro del prodotto in Capgo Alternatives, e Capgo Consulting per il flusso di lavoro del prodotto in Capgo Consulting.