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 deinem KI-Tool die Capgo Skills mit folgendem Befehl hinzu:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze anschließend 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 bevorziehst, 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 mit dem Titel „Quickstart“import { NativeLoader } from '@capgo/capacitor-native-loader';
await NativeLoader.configure({ defaults: {} });Beispiel: anzeigen
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 Fehlerquellen
Abschnitt mit dem Titel „Häufige Fehlerquellen“- Einmal initialisieren: Setup beim App-Bootstrap ausführen.
- Native Sync: ausführen
bunx cap syncnach Plugin-Upgrades. - Single Source of Truth: vertraue
src/definitions.tsim GitHub Repo.
Standardwerte konfigurieren
Abschnitt „Standardwerte konfigurieren“await NativeLoader.configure({ defaults: { style: 'orbit', placement: 'center', size: 96, colors: ['#38bdf8', '#a78bfa'], reducedMotion: 'system', interactionMode: 'passThrough', },});Top Loader im Chrome-Stil
Abschnitt: „Chrome-Style Top Loader“Nutze style: 'chrome' wenn du den vertrauten Fortschrittsbalken aus dem Browser möchtest und die WebView darunter bedienbar 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: „Siri V2 Edge Loader“Nutze style: 'siri-v2' wenn der Ladezustand statt einer zentrierten Card eine native Fullscreen-Farbanimation am App-Rand anzeigen 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: „Update-Fortschritt“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 anpassen
Abschnitt mit dem Titel „WebView anpassen“Nutze setWebViewLayout wenn ein Native Loader einen Teil des Bildschirms einnehmen soll, während Web-Inhalte weiterhin sichtbar und nutzbar bleiben.
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',});Das ursprüngliche Layout wiederherstellen, wenn die Native Surface nicht mehr aktiv ist:
await NativeLoader.hideAll({ restoreWebView: true });Lottie- und Image-Loader
Abschnitt mit dem Titel „Lottie- und Image-Loader“Bündle Lottie-JSONs oder Bild-Assets in der Native App und referenziere sie 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)Häufige Optionen
Abschnitt „Common Options“| 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 | Fullscreen- oder Scrim-Farbe |
colors | string[] | Loader-Gradientfarben |
progress | number | Deterministischer Wert von 0 zu 1 |
autoHide | number | Millisekunden bis zum automatischen Ausblenden |
asset | object | Lottie- oder Bild-Asset-Quelle |
Nutze reducedMotion: 'system' um die Motion-Einstellungen des Nutzers zu berücksichtigen.