メインコンテンツへスキップ
@capgo/capacitor-inappbrowser 名称変更 @capgo/inappbrowser から @capgo/capacitor-inappbrowser. に名称変更 UI & システム オープンソース

アプリ内ブラウザ Capacitor プラグイン

ネイティブUIレイヤー、プライベートセッション、ダウンロード、プロキシ、メッセージングを備えた、管理されたアプリ内WebViewを開きます

インストール

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

ガイド

Capacitor で In App Browser を使う方法

実機でテストする

Capgo アプリをダウンロードして、QR code をスキャンしてください。

In App Browser プラグインのプレビューQR code

@capgo/capacitor-inappbrowser の使用

@capgo/capacitor-inappbrowser Capacitor アプリから外部のウェブコンテンツを開きます。Capacitor を open() プラットフォーム標準のブラウザとして使用するか、あるいは openWebView() カスタムサイズ、ツールバー、メッセージ、スクリプト、ダウンロード、プロキシ、ポップアップ制御、プライベートストレージ、またはページ上に重ねる Ionic UI を備えた、管理されたネイティブ WebView が必要な場合に使用します。

インストール

npm install @capgo/capacitor-inappbrowser
npx cap sync

このプラグインで利用可能な機能

  • AndroidではChrome Custom Tabsを使用したシステムブラウザフロー、および SFSafariViewController iOS上で。
  • サイズ変更、非表示、表示、Capacitorアプリの背後への移動、最前面への復帰が可能な管理型WebViewを提供します。
  • クリック、タッチ、スクロールの転送機能により、 dispatchInputEvent() アプリのUIがブラウザの上に重なっている場合でも操作可能です。
  • AndroidとiOSの両方で、ネイティブWebViewフレームの外側をタップした際にCapacitorアプリへ操作が透過する、部分画面ブラウザを実現します。
  • Cookie、キャッシュ、およびすべての閲覧データのクリーンアップ機能により、 persistWebViewData, clearCookies, clearAllCookies, clearCacheや clearAllBrowsingData.
  • アプリからページへの通信、 postMessage()およびページからアプリへの通信をサポートします。 window.mobileApp.postMessage(...)、および script injection 機能も備えています。 executeScript().
  • ダウンロード処理、ネイティブ優先のプロキシルール、ポップアップ制御、Google Pay サポート、 _blank リンク処理、そして非表示のプリロード可能なブラウザインスタンスを提供します。

よくあるユースケース

Live Browser の上に App UI を表示する

import { InAppBrowser } from '@capgo/capacitor-inappbrowser';

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/checkout',
  toBack: true,
  transparentBackground: true,
});

await InAppBrowser.dispatchInputEvent({
  id,
  type: 'click',
  x: 160,
  y: 420,
});

await InAppBrowser.bringToFront({ id });

決済オーバーレイ、ブラウザベースの決済フロー、ガイド付きサポートフロー、または Ionic のコントロールをライブWebコンテンツの上に維持する必要がある機能に使用してください。

ブラウザシート周辺の App のクリック操作を維持する

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/offers',
  height: window.innerHeight - 200,
  y: 0,
});

await InAppBrowser.updateDimensions({ id, height: window.innerHeight });

カスタムサイズのブラウザは、そのフレーム内のタッチのみをキャプチャします。Android と iOS では、残りの表示されているアプリ領域はタップ可能なまま維持されます。

Web セッションの永続化を避ける

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/login',
  persistWebViewData: false,
});

await InAppBrowser.clearAllBrowsingData();
await InAppBrowser.close({ id });

アカウント切り替え、決済テスト、サポート用のアカウントなりすまし、または Cookie、キャッシュ、local storage、IndexedDB を必要以上に保持したくない認証フローに使用してください。

複数の WebView をプリロードして切り替える

const first = await InAppBrowser.openWebView({ url: 'https://example.com/a', hidden: true });
const second = await InAppBrowser.openWebView({ url: 'https://example.com/b', hidden: true });

await InAppBrowser.show({ id: first.id });
await InAppBrowser.hide({ id: first.id });
await InAppBrowser.show({ id: second.id });

非表示のインスタンスは、アプリのタッチをブロックするネイティブオーバーレイを避けつつ、その状態を保持できます。

高度なWebアプリを埋め込む

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/portal',
  handleDownloads: true,
  openBlankTargetInWebView: true,
  hiddenPopupWindow: true,
  outboundProxyRules: [
    {
      urlRegex: '^https://example\\.com/api/',
      action: 'delegateToJs',
    },
  ],
});

await InAppBrowser.postMessage({
  id,
  detail: { source: 'app', action: 'refresh' },
});

ドキュメントポータル、アップロードフロー、サポートデスク、ビデオ通話、Google Pay、またはアプリ内から離れずにネイティブアプリの制御が必要なインタラクティブWebアプリに最適です。

リファレンス全文

@capgo/capacitor-inappbrowser の使用方法から続ける

使用している場合 @capgo/capacitor-inappbrowser の使用 ネイティブプラグインの作業を計画するには、次と連携してください: @capgo/capacitor-inappbrowser @capgo/capacitor-inappbrowser での実装詳細についてはこちら: スタートガイド スタートガイドの実装詳細については、 Capgo プラグインディレクトリ Capgo プラグインディレクトリのプロダクトワークフローについては、 Capgo による Capacitor プラグイン Capgo による Capacitor Plugins の実装詳細、および プラグインの追加または更新 プラグインの追加または更新に関する実装詳細についてはこちら。

よくある質問

In App Browser プラグイン FAQ

Capacitor アプリに In App Browser プラグインをインストールするにはどうすればよいですか?

"bun add @capgo/capacitor-inappbrowser"(または "npm install @capgo/capacitor-inappbrowser")を実行し、続けて "bunx cap sync" を実行すると、iOS と Android のプロジェクトにネイティブの code が反映されます。アプリの code で "@capgo/capacitor-inappbrowser" からインポートしてください。

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

はい。In App Browser は Capacitor パッケージなので、Ionic、React、Vue、Angular、Svelte、素の JavaScript など、Capacitor 上で動くあらゆる Web フレームワークで動作します。

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

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

@capgo/capacitor-inappbrowserは無料かつオープンソースですか?

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

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

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

アプリの審査を待たずに In App Browser の変更をリリース

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

Capgo から始める