Iniziare
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.
Installazione
Sezione intitolata “Installazione”Puoi utilizzare la nostra configurazione assistita dall'IA per installare il plugin. Aggiungi le Capgo competenze al tuo strumento di AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUsa poi la seguente richiesta:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-transitions` plugin in my project.Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:
-
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 router cambi rotta
import { setDirection } from '@capgo/capacitor-transitions/react';setDirection('forward');router.push('/message/42');setDirection('back');router.back();
Impostazione React
Sezione intitolata “Impostazione 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 tipologie JSX per cap-router-outlet, cap-page, cap-header, cap-contente cap-footer. In most React projects, that import makes the custom elements valid in TSX automatically.
Se TypeScript segnala ancora gli errori: 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 all'interno src/ è sufficiente. Per Next.js, mettilo in src/ o nella cartella radice 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, includi quella cartella invece: types/ Copia nel portapenna
{ "include": ["src", "types"]}Torna indietro con lo swipe
Sottosezione intitolata “Torna indietro con lo swipe”Abilita o disabilita il gesto di edge iOS dal markup:
<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 dal 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 segue il dito. Quando l'utente rilascia, la transizione si completa e chiede alla storia del browser di andare indietro, o annulla e ripristina la pagina corrente.
Per evitare che un elemento inizi il gesto, aggiungi data-swipe-gesture-ignore:
<button data-swipe-gesture-ignore>Open drawer</button>Con navigazione nativa
Sottosezione intitolata “Con navigazione nativa”Usa @capgo/capacitor-transitions con @capgo/native-navigation quando il nativo deve gestire le barre superiore e inferiore mentre il contenuto web mantiene la movimentazione delle pagine in 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 dell'outlet di transizione web 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);} -
Fai muovere entrambi i sistemi dagli 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 visualizzare la barra superiore nativa di nuovo come un movimento <cap-header>. Lascia @capgo/native-navigation mantenere la barra nativa e utilizzare @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 | Impostazione predefinita | 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 nativamente il gesto di bordo iOS |
Metodi:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
Sottosezione intitolata “<cap-page>”Rappresenta una pagina e emette eventi di ciclo di vita:
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
Sottosezione intitolata “<cap-content>”| Attributo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
fullscreen | boolean | false | Fare scorrere il contenuto dietro l'intestazione |
scroll-x | boolean | true | Abilita lo scorrimento orizzontale |
scroll-y | boolean | true | Abilita lo scorrimento verticale |
Aiuti dei framework
Sezione intitolata “Aiuti dei framework”Gli entrypoint del framework espongono gli stessi aiuti 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
__CAPGO_KEEP_0__
Continua da Inizia a utilizzareSe stai utilizzando Iniziare per pianificare la migrazione e le operazioni aziendali, collega Utilizzando @capgo/capacitor-transizioni per la capacità nativa in Utilizzando @capgo/capacitor-transizioni Capgo Enterprise per il flusso di lavoro del prodotto in Capgo Enterprise Sostituti del plugin aziendale di Ionic per il flusso di lavoro del prodotto in Sostituti del plugin aziendale di Ionic Capgo Alternatives per il flusso di lavoro del prodotto in Capgo Alternatives, e Capgo Consulting per il workflow del prodotto in Capgo Consulting.