メインコンテンツにジャンプ
@capgo/capacitor-webview-crash 認証 & セキュリティ オープンソース

ウェブビュー クラッシュ Capacitor プラグイン

WebViewsがクラッシュした場合に再起動し、長時間実行中のWebViewsを一定間隔でリサイクルする

インストール

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

ガイド

WebView Crashを使用する方法についてはCapacitor

デバイスでテスト

Download the Capgo app, then scan the QR code.

WebView Crash プラグインのプレビュー QR code

@capgo/capacitor-webview-crashを使用

iOSとAndroidでWebViewのクラッシュを検出し、死んだWebViewを再起動し、長時間実行中のWebViewを一定間隔で再起動し、メモリ圧力がOOMになる前に

インストール

npm install @capgo/capacitor-webview-crash
npx cap sync

このプラグインが公開するもの

  • iOSとAndroidでWebViewのクラッシュ後にネイティブで再起動
  • 長時間実行するキオスク、POS、サイン、スキャナー、ダッシュボードアプリ用に一定間隔でネイティブのWebViewを再起動
  • restartWebView - JavaScriptがページリロードなしで新しいネイティブのWebViewを要求できるようにします
  • WebViewCrashPluginConfig - 種類 plugins.WebViewCrash オプション capacitor.config.ts.
  • getPendingCrashInfo HTMLテキストの長いCapgoUI文字列の親キー`compare_capawesome_step2_text`から取得されたコンテキスト null Capgoマーケティングウェブサイトのページ/エリア: Capgoマーケティングウェブサイトのロール: 長いマーケティングまたは法的文章。ページの代替/capawesome.astroを保存します。Capgo製品/ブランドと開発者用語を完全に保持します。
  • clearPendingCrashInfo - 待機中のネイティブクラッシュまたは再起動マーカーを取得します。
  • simulateCrashRecovery オプションがなければ
  • webViewRestoredAfterCrash - 待機中のマーカーが削除されます。
  • webViewRestoredAfterRestart - 待機中のマーカーが削除されます。

- 待機中のマーカーが削除されます。

import { WebViewCrash } from '@capgo/capacitor-webview-crash';

await WebViewCrash.addListener('webViewRestoredAfterCrash', async (info) => {
  console.log('Recovered after a WebView crash', info);
  await WebViewCrash.clearPendingCrashInfo();
});

await WebViewCrash.addListener('webViewRestoredAfterRestart', async (info) => {
  console.log('Recovered after a native WebView restart', info);
  await WebViewCrash.clearPendingCrashInfo();
});

const pending = await WebViewCrash.getPendingCrashInfo();
// Note: the listener callback may have already cleared the pending marker.
if (pending.value) {
  console.log('Pending crash or restart marker', pending.value);
}

- 待機中のマーカーが削除されます。

- 待機中のマーカーが削除されます。 capacitor.config.ts - 待機中のマーカーが削除されます。

import type { CapacitorConfig } from '@capacitor/cli';
import type { WebViewCrashPluginConfig } from '@capgo/capacitor-webview-crash';

const webViewCrash: WebViewCrashPluginConfig = {
  restartOnCrash: true,
  restartCron: '0 3 * * *',
  restartAfterCrashDelayMs: 0,
};

const config: CapacitorConfig = {
  plugins: {
    WebViewCrash: webViewCrash,
  },
};

export default config;

定期再起動を書き込みます。 reason: 'periodicRestart'. 使います。 restartIntervalMs 固定間隔または restartCron デバイスのローカルタイムゾーン内で 0 3 * * * 5フィールドのcronスケジュールの場合、たとえば restartCron is set and restartIntervalMs がセットされ 0より大きい場合に致命的な構成エラーを投げます。重要なアプリケーション状態を保存する前に短いスケジュールを使用してください。

マニュアルネイティブ再起動

呼び出し restartWebView() JavaScriptがネイティブのWebViewを予防的に置き換えることを決定した場合、たとえばメモリが重いワークフロー後など:

await WebViewCrash.restartWebView();

JavaScriptがネイティブのWebViewを予防的に置き換えることを決定したとき、たとえばメモリ重いワークフロー後:「メソッドは」 reason: 'manualRestart' とnative codeを再起動してWebViewを新しく作成するように求める。Androidはホストアクティビティを再作成する。iOSはCapacitorブリッジビューを再構築するので、ページを再読み込みするのではなく新しい WKWebView ページが作成される。

フルリファレンス

使用中の@capgo/capacitor-webview-crashから続けてください。

あなたが使用している 使用中の@capgo/capacitor-webview-crash nativeメディアとインターフェイスの動作を計画する場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crashと接続してください。 @capgo/capacitor-webview-crashの実装詳細を参照してください。 @capgo/capacitor-webview-crash はじめに for the implementation detail in Getting Started @capgo/capacitor-ライブアクティビティ for the native capability in Using @capgo/capacitor-live-activities @capgo/capacitor-ライブアクティビティ @capgo/capacitor-ライブアクティビティの実装詳細について @Capacitor/ capgo/capacitor-video-player for the native capability in Using @capgo/capacitor-video-player

FAQ

ウェブビューのクラッシュプラグインのFAQ

ウェブビューのクラッシュプラグインをCapacitorアプリにインストールするにはどうすればいいですか?

「bun add @capgo/capacitor-webview-crash」(または「npm install @capgo/capacitor-webview-crash」)を実行し、次に「bunx cap sync」を実行してiOSとAndroidのプロジェクトがネイティブのcodeを取得するようにします。次に、@capgo/capacitor-webview-crashをインポートしてアプリのcodeに追加します。

@capgo/capacitor-webview-crashは、React、Vue、Angularとどのくらいの関係があるのでしょうか。

はい。ウェブビューのクラッシュはCapacitorパッケージなので、ウェブフレームワークがCapacitor内で実行される場合、ウェブビューのクラッシュはIonic、React、Vue、Angular、Svelte、または単純なJavaScriptと組み合わせることができます。

Which Capacitor version does @capgo/capacitor-webview-crash support?

Capgo plugins follow Capacitor's major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

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

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-webview-crash/ and the package is free to install from npm. Bug reports and pull requests are welcome.

アップデート code がウェブビュー クラッシュを使用している場合、アプリ ストアのレビューなしでアップデートできますか。

Installing or upgrading the plugin changes native code, so it needs a new store build. After that, JavaScript, HTML and CSS changes that call the plugin can ship instantly with Capgo live updates.

WebView Crashの変更をアプリレビューの待たずに配信

プラグインがストアビルドに追加されたら、CapgoライブアップデートはユーザーにJavaScript、HTML、CSSの変更を数分でプッシュします。

Capgoで始めましょう