メインコンテンツへスキップ
@capgo/capacitor-native-loader UI & システム オープンソース

ネイティブローダー Capacitor プラグイン

JavaScript またはネイティブの code から、ネイティブのアニメーションローダー、透過オーバーレイ、Lottie アセット、WebView のリサイズを伴うローディング状態を表示します

インストール

bun add @capgo/capacitor-native-loader bunx cap sync
npm、pnpm、または yarn
  • npm install @capgo/capacitor-native-loader
  • pnpm add @capgo/capacitor-native-loader
  • yarn add @capgo/capacitor-native-loader

ガイド

Capacitor で Native Loader を使う方法

@capgo/capacitor-native-loader の使用方法

@capgo/capacitor-native-loader ネイティブの iOS および Android ビューを通じてローディング状態を表示します。WebView がビジーな間もローダーをスムーズに保ちたい場合や、CSS による透過フルスクリーン効果の負荷が高い場合、または JavaScript の準備ができる前に別のネイティブプラグインでローディング UI を表示する必要がある場合に適しています。

インストール

npm install @capgo/capacitor-native-loader
npx cap sync

フルスクリーン Native Loader

import { NativeLoader } from '@capgo/capacitor-native-loader';

const { id } = await NativeLoader.show({
  style: 'siri',
  placement: 'fullscreen',
  message: 'Preparing your session',
  colors: ['#71f6ff', '#8b5cf6', '#ff4ecd', '#fff7ad'],
  scrimColor: 'rgba(3, 7, 18, 0.42)',
  interactionMode: 'block',
});

await initializeAppData();
await NativeLoader.hide({ id });

WebView リサイズ対応 Edge Loader

await NativeLoader.setWebViewLayout({
  mode: 'inset',
  insets: { top: 96 },
  animated: true,
});

await NativeLoader.show({
  style: 'wave',
  placement: 'top',
  message: 'Syncing changes',
  interactionMode: 'passThrough',
});

ロード完了時に WebView を復元:

await NativeLoader.hideAll({ restoreWebView: true });

Chrome スタイルのトッププログレス

重い処理の間 CSS にアニメーションを任せず、WebView の上にブラウザ風のローディングバーを出したいときは Native トッププログレスローダーを使います。

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

使用するのは siri-v2 WebView を表示したまま、画面の端に色が流れる Native フルスクリーンローダーが使えます。

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

Lottie Loader

await NativeLoader.show({
  style: 'lottie',
  placement: 'center',
  asset: {
    type: 'lottie',
    source: 'loader.json',
    loop: true,
  },
});

Bundled assets はネットワークリクエストや JavaScript の初期化より前に使えるため、起動時のローダーに最適です。

Native プラグインコール

このプラグインは公開 Native API を提供しているため、他のプラグインからローダーの表示・非表示を直接制御できます。

Swift:

import CapgoCapacitorNativeLoader

let id = NativeLoader.shared.show(options: [
  "style": "orbit",
  "placement": "fullscreen",
  "message": "Opening secure session"
])

NativeLoader.shared.hide(id: id)

Kotlin:

import app.capgo.nativeloader.NativeLoader

val id = NativeLoader.show(
  activity = activity,
  options = mapOf(
    "style" to "orbit",
    "placement" to "fullscreen",
    "message" to "Loading profile",
  ),
  webView = bridge.webView,
)

NativeLoader.hide(id)

@capgo/capacitor-native-loader の使用方法から次へ

以下を使用している場合: @capgo/capacitor-native-loader の使用方法 ネイティブのメディアやインターフェースの挙動を計画し、以下と連携させます: @capgo/capacitor-native-loader 実装の詳細については、 はじめに セットアップには、 @capgo/capacitor-native-navigation を使用 ネイティブの Chrome および WebView レイアウト用、および @capgo/capacitor-transitions を使用 WebView のルート遷移用。

よくある質問

Native Loader プラグイン FAQ

Capacitor アプリに Native Loader プラグインをインストールするには?

"bun add @capgo/capacitor-native-loader" (または "npm install @capgo/capacitor-native-loader") を実行し、次に "bunx cap sync" を実行して、iOS および Android プロジェクトにネイティブの code を反映させます。その後、アプリの code から "@capgo/capacitor-native-loader" をインポートしてください。

@capgo/capacitor-native-loader は React、Vue、Angular で動作しますか?

はい。Native Loader は Capacitor パッケージであるため、Ionic、React、Vue、Angular、Svelte、およびプレーンな JavaScript を含む、Capacitor 内で動作するあらゆる Web フレームワークで使用可能です。

@capgo/capacitor-native-loader はどの Capacitor バージョンをサポートしていますか?

Capgo プラグインは Capacitor のメジャーバージョンに合わせています。使用している Capacitor のメジャーバージョンと一致するプラグインのメジャーバージョンを使ってください (例: Capacitor 8 ならプラグイン v8)。GitHub の README にある互換性テーブルに、メンテナンス中のバージョンが記載されています。

@capgo/capacitor-native-loader は無料のオープンソースですか?

はい。code のソースコードは GitHub の https://github.com/Cap-go/capacitor-native-loader/ で公開されており、npm から無料でインストールできます。バグ報告やプルリクエストもお待ちしています。

Native Loader を使用している code を、App Store の審査なしでアップデートできますか?

このプラグインをインストールまたはアップグレードするとネイティブの code が変わるため、ストア向けの新しいビルドが必要です。その後は、プラグインを呼び出す JavaScript、HTML、CSS の変更を Capgo によるライブアップデートで即座に配信できます。

アプリの審査を待たずに Native Loader の変更をリリース

ストアビルドにプラグインを組み込めば、Capgo のライブアップデートで JavaScript、HTML、CSS の変更を数分でユーザーに配信できます。

Capgo から始める