Zum Inhalt springen

Anleitung

GitHub

Sektion mit dem Titel „Installation“

Installation

Sie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie die Capgo-Fähigkeiten Ihrem AI-Tool mithilfe der folgenden Befehl hinzu:

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

Verwenden Sie dann die folgende Anfrage:

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

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

  1. Installieren Sie das Paket

    Terminalfenster
    npm install @capgo/capacitor-sheets
  2. Registrieren Sie die Web-Komponenten

    import '@capgo/capacitor-sheets';
  3. Fügen Sie die Ansichtseinstellung für sichere Bereiche hinzu

    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
  4. Eine Blattform rendern

    <cap-sheet-trigger for="booking-sheet" action="present">Open route</cap-sheet-trigger>
    <cap-sheet id="booking-sheet" detents="18em 32em" content-placement="bottom">
    <cap-sheet-portal>
    <cap-sheet-view>
    <cap-sheet-backdrop></cap-sheet-backdrop>
    <cap-sheet-content class="route-sheet">
    <cap-sheet-bleeding-background></cap-sheet-bleeding-background>
    <cap-sheet-handle></cap-sheet-handle>
    <cap-sheet-title>Evening route</cap-sheet-title>
    <cap-sheet-description>Choose a route and confirm pickup.</cap-sheet-description>
    <cap-sheet-trigger action="dismiss">Done</cap-sheet-trigger>
    </cap-sheet-content>
    </cap-sheet-view>
    </cap-sheet-portal>
    </cap-sheet>
    .route-sheet {
    width: min(100%, 34em);
    padding: 0 1.25em 1.25em;
    }

Abschnitt mit dem Titel “Capacitor-Sichere Bereiche”

Section titled “Capacitor Safe Areas”

Die Blattformansicht liest sowohl Browserumgebungsvariablen als auch __CAPGO_KEEP_0__-Fallbackwerte aus: safe-area="auto"Capacitor-Workflow

env(safe-area-inset-top)
env(safe-area-inset-bottom)
env(safe-area-inset-left)
env(safe-area-inset-right)
var(--safe-area-inset-top)
var(--safe-area-inset-bottom)
var(--safe-area-inset-left)
var(--safe-area-inset-right)

Wählen Sie die geschützten Ecken pro Blatt:

<cap-sheet safe-area="auto"></cap-sheet>
<cap-sheet safe-area="bottom left right"></cap-sheet>
<cap-sheet safe-area="none"></cap-sheet>

Für Apps mit Überlagerungsleisten oder Systemleisten, behalten Sie die native Plugins bei, die korrekte Eingriffswerte freigeben:

import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
StatusBar: {
overlaysWebView: true,
},
Keyboard: {
resize: 'body',
resizeOnFullScreen: true,
},
SystemBars: {
insetsHandling: 'css',
},
},
};
export default config;

Die Tastatureingabe wird von native-focus-scroll-prevention, die standardmäßig auf true festgelegt, kontrolliert. Deaktivieren Sie es nur, wenn Ihre App bereits die Tastatureingabe vermeidet:

<cap-sheet native-focus-scroll-prevention="false"></cap-sheet>

Alle Framework-Helfer konfigurieren das gleiche zugrunde liegende benutzerdefinierte Element. Sie können auch ein Blatt direkt steuern:

const sheet = document.querySelector('cap-sheet');
await sheet?.present();
await sheet?.stepTo(2);
await sheet?.step('down');
await sheet?.dismiss();

Hören Sie sich die Ereignisse für den kontrollierten Zustand, die Analytik oder die koordinierte Animation an:

sheet?.addEventListener('cap-sheet-presented-change', (event) => {
console.log(event.detail.presented);
});
sheet?.addEventListener('cap-sheet-active-detent-change', (event) => {
console.log(event.detail.activeDetent);
});
sheet?.addEventListener('cap-sheet-travel', (event) => {
console.log(event.detail.progress);
});
import { useEffect, useRef } from 'react';
import { setupSheet } from '@capgo/capacitor-sheets/react';
import '@capgo/capacitor-sheets';
export function BookingSheet() {
const sheetRef = useRef<HTMLElement>(null);
useEffect(() => {
if (!sheetRef.current) return;
return setupSheet(sheetRef.current, {
detents: ['18em', '32em'],
contentPlacement: 'bottom',
onPresentedChange: ({ presented }) => console.log({ presented }),
});
}, []);
return (
<cap-sheet id="booking-sheet" ref={sheetRef}>
<cap-sheet-trigger action="present">Open</cap-sheet-trigger>
<cap-sheet-view>
<cap-sheet-backdrop />
<cap-sheet-content>
<cap-sheet-handle />
<cap-sheet-title>React sheet</cap-sheet-title>
</cap-sheet-content>
</cap-sheet-view>
</cap-sheet>
);
}

Zur Zwischenablage kopieren @capgo/capacitor-sheets/react Importieren von

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

Zur Zwischenablage kopieren

Veu
<script setup lang="ts">
import { onMounted, onUnmounted, ref } from 'vue';
import { setupSheet } from '@capgo/capacitor-sheets/vue';
import '@capgo/capacitor-sheets';
const sheetRef = ref<HTMLElement | null>(null);
let cleanup: (() => void) | undefined;
onMounted(() => {
if (sheetRef.value) {
cleanup = setupSheet(sheetRef.value, {
detents: ['18em', '32em'],
contentPlacement: 'bottom',
});
}
});
onUnmounted(() => cleanup?.());
</script>
<template>
<cap-sheet id="booking-sheet" ref="sheetRef">
<cap-sheet-trigger action="present">Open</cap-sheet-trigger>
<cap-sheet-view>
<cap-sheet-backdrop />
<cap-sheet-content>
<cap-sheet-handle />
<cap-sheet-title>Vue sheet</cap-sheet-title>
</cap-sheet-content>
</cap-sheet-view>
</cap-sheet>
</template>
import { AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, ViewChild } from '@angular/core';
import { setupSheet } from '@capgo/capacitor-sheets/angular';
import '@capgo/capacitor-sheets';
@Component({
selector: 'app-root',
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
template: `
<cap-sheet id="booking-sheet" #sheet>
<cap-sheet-trigger action="present">Open</cap-sheet-trigger>
<cap-sheet-view>
<cap-sheet-backdrop></cap-sheet-backdrop>
<cap-sheet-content>
<cap-sheet-handle></cap-sheet-handle>
<cap-sheet-title>Angular sheet</cap-sheet-title>
</cap-sheet-content>
</cap-sheet-view>
</cap-sheet>
`,
})
export class AppComponent implements AfterViewInit {
@ViewChild('sheet', { static: true }) sheet?: ElementRef<HTMLElement>;
ngAfterViewInit(): void {
if (this.sheet?.nativeElement) {
setupSheet(this.sheet.nativeElement, {
detents: ['18em', '32em'],
contentPlacement: 'bottom',
});
}
}
}
<script lang="ts">
import { sheet } from '@capgo/capacitor-sheets/svelte';
import '@capgo/capacitor-sheets';
</script>
<cap-sheet id="booking-sheet" use:sheet={{ detents: ['18em', '32em'], contentPlacement: 'bottom' }}>
<cap-sheet-trigger action="present">Open</cap-sheet-trigger>
<cap-sheet-view>
<cap-sheet-backdrop />
<cap-sheet-content>
<cap-sheet-handle />
<cap-sheet-title>Svelte sheet</cap-sheet-title>
</cap-sheet-content>
</cap-sheet-view>
</cap-sheet>
import { onCleanup, onMount } from 'solid-js';
import { setupSheet } from '@capgo/capacitor-sheets/solid';
import '@capgo/capacitor-sheets';
export function BookingSheet() {
let sheetEl!: HTMLElement;
onMount(() => {
const cleanup = setupSheet(sheetEl, {
detents: ['18em', '32em'],
contentPlacement: 'bottom',
});
onCleanup(cleanup);
});
return (
<cap-sheet id="booking-sheet" ref={sheetEl}>
<cap-sheet-trigger action="present">Open</cap-sheet-trigger>
<cap-sheet-view>
<cap-sheet-backdrop />
<cap-sheet-content>
<cap-sheet-handle />
<cap-sheet-title>Solid sheet</cap-sheet-title>
</cap-sheet-content>
</cap-sheet-view>
</cap-sheet>
);
}
ElementZweck
cap-sheetBlattzustand, Haltstellen, Gesten, Modalfunktionen und Ereignisse
cap-sheet-triggerDeklarative Präsentation, Abmeldung, Toggle- und Schrittaktionen
cap-sheet-portalOptionale Körperportal für Überlagerung
cap-sheet-viewFestes Ansichtsfenster mit sicheren Bereich und Tastaturabstand
cap-sheet-backdropProgress-synchronisierter Hintergrund
cap-sheet-contentZugängliche Blattoberfläche
cap-sheet-bleeding-backgroundHintergrund für gerundete Blattränder
cap-sheet-handleZiehbare und tastaturzugängliche Haltstellenhandgriff
cap-sheet-titleZugänglicher Titel
cap-sheet-descriptionZugängliche Beschreibung
cap-sheet-special-wrapperKompositionshook für losgelöste Blätter, Karten und Lightboxes
cap-sheet-stackGruppierung gestapelter Blätter
cap-sheet-outletProgress-Ausgang für Tiefe, Parallax und Seiteneffekte
cap-scrollHilfe für Scroll-Progress
cap-fixedHelper für feste Layer
cap-islandZugehörige Insel-Inhalte, die schweben
cap-external-overlayInhalt, der über das Blattbaum-Tree verwaltet wird
EinstellungEigenschaftStandardwertBeschreibung
contentPlacementcontent-placementbottomtop, bottom, left, right, oder center
detentsdetentskeineZeilenumbrüche wie z.B. 18em 32em
safeAreasafe-areaautoGeschützte sichere Bereichskanten
swipeswipetrueAktivieren Sie die Pointer-, Touch-, Trackpad- und Wheel-Gesten
swipeDismissalswipe-dismissaltrueErlauben Sie, dass Gesten zum Abtasten des Detentes führen 0
inertOutsideinert-outsidetrueVerhindern Sie die Interaktion hinter Modal-Sheets
focusTrapfocus-traptrueBleiben Sie die Tastenfokus innerhalb des Blatts
closeOnOutsideClickclose-on-outside-clicktrueSchließen Sie, wenn Sie auf den Hintergrund oder die Ansicht klicken
closeOnEscapeclose-on-escapetrueSchließen Sie, wenn Sie Escape drücken
nativeFocusScrollPreventionnative-focus-scroll-preventiontrueHalten Sie die fokussierten Eingabefelder über dem Tastaturfeld sichtbar
themeColorDimmingtheme-color-dimmingautoDimme die WebView-Themenfarbe während des Modals
  • @capgo/capacitor-sheets
  • @capgo/capacitor-sheets/react
  • @capgo/capacitor-sheets/vue
  • @capgo/capacitor-sheets/angular
  • @capgo/capacitor-sheets/svelte
  • @capgo/capacitor-sheets/solid

Wenn Sie native Plugin-Arbeit planen, verbinden Sie es mit Getting Started um die native Plugin-Arbeit zu planen, verbinden Sie es mit Capgo Plugin-Verzeichnis um den Produktworkflow im Capgo Plugin-Verzeichnis zu planen Capacitor Plugins von Capgo um die Implementierungsdetails in Capacitor Plugins von Capgo zu planen Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren Ionische Unternehmens-Plugin-Alternativen für den Produktworkflow in Ionische Unternehmens-Plugin-Alternativen Capgo Native Builds für den Produktworkflow in Capgo Native Builds