Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-native-loader`
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/native-loader/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.
Installation
Abschnitt mit dem Titel „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-native-loader` plugin in my project.Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
-
Paket installieren
Terminalfenster bun add @capgo/capacitor-native-loaderbunx cap sync -
Native Loader via JavaScript anzeigen
import { NativeLoader } from '@capgo/capacitor-native-loader';const { id } = await NativeLoader.show({style: 'siri',placement: 'fullscreen',message: 'Preparing workspace',colors: ['#71f6ff', '#8b5cf6', '#ff4ecd', '#fff7ad'],scrimColor: 'rgba(3, 7, 18, 0.42)',interactionMode: 'block',});await doExpensiveWork();await NativeLoader.hide({ id });
Quickstart
Abschnitt „Quick start“import { NativeLoader } from '@capgo/capacitor-native-loader';
await NativeLoader.configure({ defaults: {} });Beispiel: show
Abschnitt mit dem Titel „Beispiel: show“import { NativeLoader } from '@capgo/capacitor-native-loader';
const result = await NativeLoader.show();console.log(result);Beispiel: Update
Abschnitt mit dem Titel „Beispiel: update“import { NativeLoader } from '@capgo/capacitor-native-loader';
await NativeLoader.update({ id: 'id-123' });Häufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Einmalige Initialisierung: Setup beim App-Bootstrap ausführen.
- Nativer Sync: ausführen
bunx cap syncnach Plugin-Upgrades. - Single Source of Truth: Vertrauen
src/definitions.tsim GitHub Repo.
Standardwerte konfigurieren
Section titled “Configure Defaults”await NativeLoader.configure({ defaults: { style: 'orbit', placement: 'center', size: 96, colors: ['#38bdf8', '#a78bfa'], reducedMotion: 'system', interactionMode: 'passThrough', },});Top-Loader im Chrome-Stil
Abschnitt mit dem Titel „Chrome-Style Top Loader“Nutzt style: 'chrome' wenn Sie die vertraute Browser-Fortschrittsleiste oben wünschen und die WebView darunter weiterhin nutzbar bleiben soll.
const { id } = await NativeLoader.show({ style: 'chrome', placement: 'top', colors: ['#4285f4', '#34a853', '#fbbc05', '#ea4335'], thickness: 4, interactionMode: 'passThrough', webView: { mode: 'resize', insets: { top: 12 }, restoreOnHide: true, },});
await NativeLoader.hide({ id, restoreWebView: true });Siri V2 Edge Loader
Abschnitt mit dem Titel „Siri V2 Edge Loader“Nutzt style: 'siri-v2' wenn der Ladezustand eine native Vollbild-Farbfläche am App-Rand statt einer zentrierten Karte sein soll.
const { id } = await NativeLoader.show({ style: 'siri-v2', placement: 'fullscreen', colors: ['#71f6ff', '#8b5cf6', '#ff4ecd', '#fff7ad'], thickness: 10, scrimColor: 'rgba(3, 7, 18, 0.10)', interactionMode: 'passThrough',});
await NativeLoader.hide({ id });Update-Fortschritt
Abschnitt mit dem Titel „Update Progress“const { id } = await NativeLoader.show({ style: 'ring', message: 'Uploading', progress: 0,});
for await (const progress of uploadFile(file)) { await NativeLoader.setProgress({ id, progress });}
await NativeLoader.hide({ id });WebView-Größe ändern
Abschnitt mit dem Titel „WebView verkleinern“Nutzt setWebViewLayout wenn ein nativer Loader einen Teil des Bildschirms besetzen soll, während der Webinhalt sichtbar und nutzbar bleibt.
await NativeLoader.setWebViewLayout({ mode: 'inset', insets: { top: 96, bottom: 24 }, animated: true,});
await NativeLoader.show({ style: 'wave', placement: 'top', size: 72, message: 'Syncing', interactionMode: 'passThrough',});Stellt das ursprüngliche Layout wieder her, wenn die native Oberfläche entfernt wurde:
await NativeLoader.hideAll({ restoreWebView: true });Lottie- und Image-Loader
Abschnitt mit dem Titel „Lottie- und Bild-Loader“Bündeln Sie Lottie-JSON- oder Bildressourcen in der nativen App und verweisen Sie darauf aus JavaScript.
await NativeLoader.show({ style: 'lottie', placement: 'center', asset: { type: 'lottie', source: 'rocket-loader.json', loop: true, },});await NativeLoader.show({ style: 'image', placement: 'bottom', asset: { type: 'image', source: 'loader-frame', },});Native Swift-Aufrufe
Abschnitt mit dem Titel „Native Swift Calls“Andere iOS-Plugins können den Shared Loader direkt aufrufen.
import CapgoCapacitorNativeLoader
let id = NativeLoader.shared.show(options: [ "style": "siri", "placement": "fullscreen", "message": "Opening secure session", "interactionMode": "block"])
NativeLoader.shared.setProgress(id: id, progress: 0.6)NativeLoader.shared.hide(id: id)Native Kotlin-Aufrufe
Abschnitt mit dem Titel „Native Kotlin Calls“Andere Android-Plugins können das öffentliche Objekt aus Kotlin oder Java aufrufen.
import app.capgo.nativeloader.NativeLoader
val id = NativeLoader.show( activity = activity, options = mapOf( "style" to "orbit", "placement" to "fullscreen", "message" to "Loading profile", "interactionMode" to "block", ), webView = bridge.webView,)
NativeLoader.setProgress(id, 0.6)NativeLoader.hide(id)Allgemeine Optionen
Abschnitt mit dem Titel „Allgemeine Optionen“| Option | Typ | Beschreibung |
|---|---|---|
style | 'siri' | 'siri-v2' | 'chrome' | 'orbit' | 'ring' | 'pulse' | 'dots' | 'bars' | 'wave' | 'halo' | 'lottie' | 'image' | Loader-Renderer |
placement | 'center' | 'top' | 'bottom' | 'left' | 'right' | 'fullscreen' | 'around' | 'custom' | Native-Surface-Position |
interactionMode | 'passThrough' | 'block' | 'loaderOnly' | Touch-Handling |
backgroundColor | string | Overlay-Farbe (inkl. Alpha) |
scrimColor | string | Scrim-Farbe für Fullscreen oder Around-Screen |
colors | string[] | Loader-Gradient-Farben |
progress | number | Bestimmter Wert von 0 zu 1 |
autoHide | number | Millisekunden bis zum automatischen Ausblenden |
asset | object | Lottie- oder Bild-Asset-Quelle |
Nutzt reducedMotion: 'system' to respect the user’s platform motion settings.