Getting Started
Copiez une commande de configuration avec les étapes d'installation et le guide markdown complet pour ce 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.
-
Installez le package
Fenêtre de terminal npm install @capgo/capacitor-transitions -
Inscrivez les composants web
import '@capgo/capacitor-transitions'; -
Envelopper les pages routées
<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> -
Définissez la direction avant que votre routeur change de route
import { setDirection } from '@capgo/capacitor-transitions/react';setDirection('forward');router.push('/message/42');setDirection('back');router.back();
Configuration de React
Section intitulée “Configuration 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
Section intitulée “React JSX TypeScript”Importation de @capgo/capacitor-transitions/react inclut les déclarations de type JSX pour cap-router-outlet, cap-page, cap-header, cap-content, et cap-footer. Dans la plupart des projets React, cette importation rend les éléments personnalisés valides dans TSX automatiquement.
Si TypeScript signale toujours Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements', ajoutez un fichier de déclaration de projet :
import '@capgo/capacitor-transitions/react';Pour Vite, Create React App, et la plupart des applications React webpack, placer ce fichier à l'intérieur src/ est suffisant. Pour Next.js, placez-le dans src/ ou dans le dossier racine du projet et assurez-vous tsconfig.json inclut :
{ "include": ["src", "src/capgo-transitions.d.ts"]}Pour les configurations TypeScript ou webpack personnalisées qui utilisent un dossier séparé types/ incluez ce dossier à la place :
{ "include": ["src", "types"]}Retour en arrière
Section intitulée “Retour en arrière”Activer ou désactiver la gestuelle d'angle d'iPhone à partir de la balise :
<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>Ou à partir de JavaScript :
const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');outlet?.setSwipeGesture(true);outlet?.setSwipeGesture(false);auto active uniquement lorsque Capacitor signale un runtime natif iOS. Lors de la transition, le déplacement de la page suit le doigt. Lorsque l'utilisateur relâche, la transition se termine et demande à l'historique du navigateur de revenir, ou annule et restaure la page actuelle.
Pour empêcher un élément de déclencher la gestuelle, ajoutez data-swipe-gesture-ignore:
<button data-swipe-gesture-ignore>Open drawer</button>Avec la navigation native
Section intitulée “Avec la navigation native”Utilisez @capgo/capacitor-transitions avec @capgo/native-navigation lorsque la navigation native doit contrôler les barres supérieure et inférieure tandis que le contenu web conserve la motion de page Ionic.
-
Installez et synchronisez le package de navigation native :
Fenêtre de terminal npm install @capgo/native-navigationnpx cap sync -
Configurez le chrome natif :
import { NativeNavigation } from '@capgo/native-navigation';await NativeNavigation.configure({contentInsetMode: 'css',});await NativeNavigation.setNavbar({title: 'Inbox',backButton: { visible: false },}); -
Conserver la sortie de transition web responsable des pages uniquement :
<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);} -
Faites fonctionner les deux systèmes à partir des mêmes événements de routeur :
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' },});}
N'affichez pas la barre supérieure native à nouveau comme un mouvement <cap-header>. Laissez @capgo/native-navigation conserver la barre native et utilisez-la @capgo/capacitor-transitions pour le contenu de page WebView sous elle.
Composants
Section intitulée “Composants”<cap-router-outlet>
Section intitulée “<cap-router-outlet>”| Attribut | Type | Défaut | Description |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | Style d'animation |
duration | number | Défaut de la plateforme | Durée d'animation en millisecondes |
keep-in-dom | boolean | true | Conserver les pages inactives dans le DOM |
max-cached | number | 10 | Nombre maximal de pages mises en cache |
swipe-gesture | boolean | 'auto' | 'auto' | Activer, désactiver ou détecter nativement la gestuelle d'edge iOS |
Méthodes :
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
Section intitulée “<cap-page>”Enveloppe une page et émet des événements de cycle de vie :
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
Section intitulée “<cap-content>”| Attribut | Type | Par défaut | Description |
|---|---|---|---|
fullscreen | boolean | false | Permettre au contenu de défilement derrière l'en-tête |
scroll-x | boolean | true | Activer le défilement horizontal |
scroll-y | boolean | true | Activer le défilement vertical |
Aideurs de framework
Section intitulée “Aideurs de framework”Les points d'entrée du cadre exposent les mêmes aides de 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 });Points d'entrée disponibles :
@capgo/capacitor-transitions/react@capgo/capacitor-transitions/vue@capgo/capacitor-transitions/angular@capgo/capacitor-transitions/svelte@capgo/capacitor-transitions/solid
Continuez de l'étape de démarrage
Section intitulée “Continuez de l'étape de démarrage”Si vous utilisez Démarrage pour planifier la migration et les opérations d'entreprise, connectez-le avec Utiliser @capgo/capacitor-transitions pour la capacité native dans Utiliser @capgo/capacitor-transitions, Capgo Entreprise pour le flux de travail du produit dans Capgo Entreprise, Alternatives de plugins Ionic Enterprise pour le flux de travail du produit dans les alternatives de plugins Ionic Enterprise Capgo Alternatives pour le flux de travail du produit dans Capgo Alternatives, et Capgo Consulting pour le flux de travail du produit dans Capgo Consulting.