Per iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo 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.
Installazione
Sezione intitolata “Installazione”Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-native-loader` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:
-
Installa il pacchetto
Finestra del terminale bun add @capgo/capacitor-native-loaderbunx cap sync -
Mostra un loader nativo da JavaScript
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 });
Avvio rapido
Sezione intitolata “Quick start”import { NativeLoader } from '@capgo/capacitor-native-loader';
await NativeLoader.configure({ defaults: {} });Esempio: mostra
Sezione intitolata “Esempio: show”import { NativeLoader } from '@capgo/capacitor-native-loader';
const result = await NativeLoader.show();console.log(result);Esempio: aggiorna
Sezione intitolata “Esempio: update”import { NativeLoader } from '@capgo/capacitor-native-loader';
await NativeLoader.update({ id: 'id-123' });Errori comuni
Sezione intitolata “Errori comuni”- Inizializza una volta: esegui il setup durante il bootstrap dell'app.
- Sync nativo: esegui
bunx cap syncdopo gli aggiornamenti dei plugin. - Fonte di verità: fidati
src/definitions.tsnel repo GitHub.
Configura i default
Sezione intitolata “Configura i valori predefiniti”await NativeLoader.configure({ defaults: { style: 'orbit', placement: 'center', size: 96, colors: ['#38bdf8', '#a78bfa'], reducedMotion: 'system', interactionMode: 'passThrough', },});Top Loader stile Chrome
Sezione intitolata “Chrome-Style Top Loader”Usa style: 'chrome' quando vuoi la classica barra di progresso in alto del browser e la WebView deve restare utilizzabile sotto.
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
Sezione intitolata “Siri V2 Edge Loader”Usa style: 'siri-v2' quando lo stato di caricamento deve essere un movimento di colore nativo a tutto schermo lungo il bordo dell'app, invece di una card centrata.
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 });Progresso aggiornamento
Sezione intitolata “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 });Ridimensiona la WebView
Sezione intitolata “Ridimensiona la WebView”Usa setWebViewLayout quando un loader nativo deve occupare parte dello schermo mentre i contenuti web restano visibili e utilizzabili.
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',});Ripristina il layout originale quando la superficie nativa non è più presente:
await NativeLoader.hideAll({ restoreWebView: true });Loader per Lottie e immagini
Sezione intitolata “Lottie e Image Loaders”Includi asset Lottie JSON o immagini nell'app nativa e fai riferimento da 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', },});Chiamate native Swift
Sezione intitolata “Chiamate Swift native”Altri plugin iOS possono chiamare direttamente il loader condiviso.
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)Chiamate native Kotlin
Sezione intitolata “Chiamate Kotlin native”Altri plugin Android possono chiamare l'oggetto pubblico da Kotlin o Java.
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)Opzioni comuni
Sezione intitolata “Opzioni comuni”| Opzione | Tipo | Descrizione |
|---|---|---|
style | 'siri' | 'siri-v2' | 'chrome' | 'orbit' | 'ring' | 'pulse' | 'dots' | 'bars' | 'wave' | 'halo' | 'lottie' | 'image' | Renderer del loader |
placement | 'center' | 'top' | 'bottom' | 'left' | 'right' | 'fullscreen' | 'around' | 'custom' | Posizione della superficie nativa |
interactionMode | 'passThrough' | 'block' | 'loaderOnly' | Gestione del touch |
backgroundColor | string | Colore overlay, incluso alpha |
scrimColor | string | Colore scrim fullscreen o perimetrale |
colors | string[] | Colori del gradiente del loader |
progress | number | Valore determinato da 0 a 1 |
autoHide | number | Millisecondi prima della scomparsa automatica |
asset | object | Sorgente dell'asset Lottie o immagine |
Usa reducedMotion: 'system' to respect the user’s platform motion settings.