Iniziare
Copia un prompt di installazione 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> -
Imposta 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 “Impostazione di 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 le annotazioni JSX 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 basate su webpack, posizionare quel file all'interno src/ è sufficiente. Per Next.js, mettilo in src/ o la cartella root del progetto e assicurati che tsconfig.json lo includa:
{ "include": ["src", "src/capgo-transitions.d.ts"]}Per impostazioni TypeScript o webpack personalizzate che utilizzano una cartella separata types/ includi quella cartella al suo posto:
{ "include": ["src", "types"]}Copia nel portapenne
<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>Ora da JavaScript:
const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');outlet?.setSwipeGesture(true);outlet?.setSwipeGesture(false);auto abilita il gesto solo quando Capacitor segnala un runtime nativo iOS. Durante il gesto, la transizione della pagina segue il dito. Quando l'utente rilascia, la transizione si completa e chiede alla storia del browser di tornare indietro, o annulla e ripristina la pagina corrente.
Per impedire a un elemento di iniziare il gesto, aggiungi 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 possedere le barre superiore e inferiore mentre il contenuto web mantiene la movimentazione di pagina dello 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 l'uscita di transizione web responsabile solo per le pagine:
<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);} -
Guida sia 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 rendi di nuovo la barra superiore nativa come un elemento in movimento. <cap-header>Lascia @capgo/native-navigation mantieni la barra nativa e utilizza @capgo/capacitor-transitions per il contenuto della pagina WebView sotto di essa.
Componenti
Sezione intitolata “Componenti”<cap-router-outlet>
Sezione intitolata “<cap-router-outlet>”| Attributo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | Stile di animazione |
duration | number | Predefinito del sistema | Durata dell'animazione in millisecondi |
keep-in-dom | boolean | true | __CAPGO_KEEP_0__ |
max-cached | number | 10 | Pagine cache massime |
swipe-gesture | boolean | 'auto' | 'auto' | Abilita, disabilita o rileva nativamente il gesto di bordo iOS |
Metodi:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
Sezione intitolata “<cap-page>”Racchiude 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 | Consenti allo scorrimento del contenuto 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 ausili di base:
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 });Entrypoint disponibili:
@capgo/capacitor-transitions/react@capgo/capacitor-transitions/vue@capgo/capacitor-transitions/angular@capgo/capacitor-transitions/svelte@capgo/capacitor-transitions/solid
Continua da Inizia
Se stai utilizzandoInizia per pianificare la migrazione e le operazioni aziendali, connettilo con Utilizza @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-transizioni per la capacità nativa in Utilizza @capgo/capacitor-transizioni Utilizza @capgo/capacitor-transizioni Capgo Imprese per il flusso di lavoro del prodotto in Capgo Imprese, Alternativi per Plugin di Imprese di Ionic per il flusso di lavoro del prodotto in Alternativi per Plugin di Imprese di Ionic, Capgo Alternativi per il flusso di lavoro del prodotto in Capgo Alternativi, e Capgo Consulenza per il flusso di lavoro del prodotto in Capgo Consulenza.