メインコンテンツへスキップ
@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 エッジローダー

使用する 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 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 の活用 ネイティブUIのクロームとWebViewレイアウト用、および @capgo/capacitor-transitions の活用 WebViewのルートモーション用。

よくある質問

Native Loader プラグイン FAQ

Capacitor アプリに Native Loader plugin をインストールするにはどうすればよいですか?

"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 Live Updates で即座に配信できます。

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

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

Capgo から始める