Zum Inhalt springen

Getting Started

GitHub

Sie können unser AI-gestütztes Setup verwenden, um das Plugin zu installieren. Fügen Sie die Capgo-Fähigkeiten zu Ihrem AI-Tool hinzu, indem Sie folgenden Befehl ausführen:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Verwenden Sie dann die folgende Anweisung:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-transitions` plugin in my project.

Wenn Sie die manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und die Plattform-spezifischen Anweisungen unten befolgen:

  1. Installieren Sie das Paket

    Terminal-Fenster
    npm install @capgo/capacitor-transitions
  2. Registrieren Sie die Web-Komponenten

    import '@capgo/capacitor-transitions';
  3. Umgehen Sie die gerouteten Seiten

    <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>
  4. Legen Sie die Richtung fest, bevor sich Ihr Router die Route ändert

    import { setDirection } from '@capgo/capacitor-transitions/react';
    setDirection('forward');
    router.push('/message/42');
    setDirection('back');
    router.back();
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>
);
}

Importieren von @capgo/capacitor-transitions/react enthält JSX-Typen für cap-router-outlet, cap-page, cap-header, cap-content, und cap-footer. In den meisten React-Projekten macht diese Importierung die benutzerdefinierten Elemente automatisch in TSX gültig.

Wenn TypeScript immer noch meldet Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements', fügen Sie eine Projektdeklarationsdatei hinzu:

src/capgo-transitions.d.ts
import '@capgo/capacitor-transitions/react';

Für Vite, Create React App und die meisten webpack-React-Anwendungen ist es ausreichend, diese Datei in src/ zu platzieren. Für Next.js legen Sie sie in src/ oder den Projektroot und stellen sicher, dass tsconfig.json sie einbezieht:

{
"include": ["src", "src/capgo-transitions.d.ts"]
}

Für benutzerdefinierte TypeScript- oder webpack-Konfigurationen, die eine separate types/ Verzeichnis verwenden, beziehen Sie stattdessen dieses Verzeichnis ein:

{
"include": ["src", "types"]
}

Aktivieren oder deaktivieren Sie die iOS-Eckgeste aus 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>

Oder aus JavaScript:

const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');
outlet?.setSwipeGesture(true);
outlet?.setSwipeGesture(false);

auto Aktiviert die Geste nur, wenn Capacitor eine native iOS-Umgebung meldet. Während der Geste folgt die Seiteübergangsgeste der Fingerbewegung. Wenn der Benutzer loslässt, beendet die Übergangsgeste entweder und fragt das Browser-Historie nach, zurückzugehen, oder storniert und restauriert die aktuelle Seite.

Um ein Element davon abzuhalten, die Geste auszulösen, fügen Sie data-swipe-gesture-ignore:

<button data-swipe-gesture-ignore>Open drawer</button>

Verwenden Sie @capgo/capacitor-transitions mit @capgo/native-navigation wenn native die oberen und unteren Leisten besitzen soll, während die Webinhalte die Ionic-Style-Seitenelemente bewegen.

  1. Installieren und synchronisieren Sie das native-Navigationspaket:

    Terminalfenster
    npm install @capgo/native-navigation
    npx cap sync
  2. Konfigurieren Sie die native Chrome:

    import { NativeNavigation } from '@capgo/native-navigation';
    await NativeNavigation.configure({
    contentInsetMode: 'css',
    });
    await NativeNavigation.setNavbar({
    title: 'Inbox',
    backButton: { visible: false },
    });
  3. Bleiben Sie bei der Verantwortung für die Seiten nur bei der Web-Übergangsausgabe:

    <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);
    }
  4. Steueren Sie beide Systeme von denselben Router-Ereignissen aus:

    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' },
    });
    }

Rendere die native Oberleiste nicht erneut als beweglich. Lassen Sie die Oberleiste native und verwenden Sie <cap-header> für die Unterseite des WebView-Page-Inhalts. @capgo/native-navigation Komponenten @capgo/capacitor-transitions Abschnitt mit dem Titel “Komponenten”

Abschnitt mit dem Titel “<cap-router-outlet>”

Attribut

<cap-router-outlet>

Typ
StandardBeschreibung__CAPGO_KEEP_0____CAPGO_KEEP_0__
platform'ios' | 'android' | 'auto''auto'Animation-Style
durationnumberPlattform-StandardAnimation-Dauer in Millisekunden
keep-in-dombooleantrueUnaktive Seiten im DOM behalten
max-cachednumber10Höchstwert der gecachten Seiten
swipe-gestureboolean | 'auto''auto'iOS-Randgeste aktivieren, deaktivieren oder nativ erkennen

Methode(n):

  • push(element, config?)
  • pop(config?)
  • setRoot(element, config?)
  • setSwipeGesture(true | false | 'auto')

Eine Seite einhüllen und Lebenszyklusereignisse ausgeben:

  • cap-will-enter
  • cap-did-enter
  • cap-will-leave
  • cap-did-leave
AttributTypStandardBeschreibung
fullscreenbooleanfalseLassen Sie den Inhalt hinter dem Header scrollen
scroll-xbooleantrueHorizontalscrollen aktivieren
scroll-ybooleantrueVertikalscrollen aktivieren

Die Framework-Eintrittspunkte offenbaren die gleichen grundlegenden Hilfsmittel:

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 });

Verfügbare Eintrittspunkte:

  • @capgo/capacitor-transitions/react
  • @capgo/capacitor-transitions/vue
  • @capgo/capacitor-transitions/angular
  • @capgo/capacitor-transitions/svelte
  • @capgo/capacitor-transitions/solid

Wenn Sie diese verwenden Einstieg um die Migration und die Unternehmensoperationen zu planen und zu verbinden Für die native Fähigkeit in @capgo/capacitor-Übergänge Für die native Fähigkeit in @capgo/capacitor-Übergänge, Capgo-Unternehmenslösung Für den Produktworkflow in Capgo-Unternehmenslösung Ionic-Unternehmens-Plugin-Alternativen Für den Produktworkflow in Ionic-Unternehmens-Plugin-Alternativen Capgo-Alternativen Für den Produktworkflow in Capgo-Alternativen Capgo-Beratung für das Produktworkflow in Capgo Consulting.