# @capgo/capacitor-webview-crash 中文文档

规范地址：https://npmcn.com/package/%40capgo/capacitor-webview-crash/

版本：8\.1\.13
npm 元数据更新时间：2026-10-15T04:33:59.838Z
中文译文更新时间：2026-11-09T02:49:35.420Z
软件包许可：MPL-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40capgo/capacitor-webview-crash
原文对照：https://npmcn.com/package/%40capgo/capacitor-webview-crash/?lang=original
项目主页：https://capgo.app/docs/plugins/webview-crash/
源码仓库：https://github.com/Cap-go/capacitor-webview-crash

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：126 kB，27 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@capacitor/core \>=8\.0\.0
- 首次发布：2026-04-29T09:57:34.574Z
- 最新版本发布：2026-10-15T04:33:59.552Z
- 近 30 天下载量：72537（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 18 个）

## 中文简介

用于在本地检测WebView崩溃恢复并重启长期运行的Web Victor插件.

## 安装

```sh
npm install @capgo/capacitor-webview-crash
```

也可以使用：`pnpm add @capgo/capacitor-webview-crash`、`yarn add @capgo/capacitor-webview-crash`、`bun add @capgo/capacitor-webview-crash`

## README

# @ capgo/ 电容- webview- crash

在 WebView 崩溃时保持您的 Capacitor app 活性: 检测已恢复的崩溃, 在本地重启已死亡的 Web Victor , 并回收长期运行的 Web Victor 在内存耗尽之前 .

[![Capgo - Build Capacitor apps with AI, ship updates instantly](https://capgo.app/readme-banner.svg?repo=Cap-go/capacitor-webview-crash)](https://capgo.app/?ref=plugin_webview_crash)

**队长**:在几分钟内向您的Capacitor用户推进修正,在没有Mac的情况下构建签名的iOS和Android应用程序,以及 卷回一击.

## [\*免费开始\*](https://capgo.app/register/?ref=plugin_webview_crash)

14天无限自由审判. 不需要信用卡

> 🤖 **建筑与AI编码代理?** 安装 [Capgo 技能](https://capgo.app/skills/?ref=plugin_webview_crash) 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 `@capgo/capacitor-webview-crash` 在您的电容应用程序中: `npx skills add Cap-go/capgo-skills`。然后问你的经纪人: _加上@capgo/capor-webview-crash到我的Capacitor应用上并把它接上"_ [代理设置指南](https://capgo.app/agents/?ref=plugin_webview_crash) • 妇女 [主机磁共振](https://capgo.app/docs/ai/mcp/?ref=plugin_webview_crash)

![@capgo/capacitor-webview-crash for Capacitor apps](https://raw.githubusercontent.com/Cap-go/capacitor-webview-crash/main/assets/github-social-preview.png)

## 主要特点

-   **崩溃恢复**数字 : `restartOnCrash` 当 WebView 的渲染器进程终止时重新启动它.
-   **回收信息**数字 : `getPendingCrashInfo()` 财务报告和审定财务报表 `clearPendingCrashInfo()`,加上 `webViewRestoredAfterCrash` 活动.
-   **计划再循环**数字 : `restartIntervalMs` 或者说 `restartCron` 替换长期运行的 Web 视图.
-   **手动重新启动**数字 : `restartWebView()` 创建新的 Webview .
-   **测试**数字 : `simulateCrashRecovery()` 练习恢复流程.
-   **平台**: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. Web 只支持测试帮助者.

## 它会做什么

-   Android 报告时存储本地崩溃标记 `onRenderProcessGone`。 。 。 .
-   Hooks the iOS WebView 终止回调,并坚持等效崩溃元数据.
-   崩溃后恢复了WebView的本地状态,所以恢复不依赖于仍在运行的JavaScript运行时间.
-   可以重启WebView在固定的本地间隔上为站台,POS,指示器,遥测等总是运行的应用程序.
-   让 JavaScript 请求本地的 WebVew 重新启动 `restartWebView()` 当应用程序想要主动回收记忆时.
-   通过一个事件,一个投票方法,和一个测试恢复流量的模拟帮助器来展示标记.
-   以本地存储模拟相同回收流量的网络实施.

## 它不会做什么

-   防止潜在的WebView崩溃发生.
-   自动恢复丢失的 CavaScript 状态 .
-   替换应用程序级状态持久性 。 在启动预定重启之前, 坚持临界状态 .

## 兼容性

| 插件版本 | 电容兼容性 | 维护 |
| --- | --- | --- |
| 联合国 | 联合国 | ✅ |
| 页:1 | 页:1 | 应要求 |
| 页:1 | 页:1 | 应要求 |

政策:

-   新的插件从版本开始 `8.0.0` (8号电站基线).
-   对更古老的Capacitor主机的后向相容性按需支持.

## 安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

```bash
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
```

然后使用下列提示:

```text
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-webview-crash` plugin in my project.
```

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

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

## 使用量

```typescript
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();
if (pending.value) {
  console.log('Pending crash or restart marker', pending.value);
}
```

使用 `simulateCrashRecovery()` 在开发或自动测试中进行你的恢复UI,而不会强迫真正的本地WebView崩溃.

打电话 `restartWebView()` 当当前 JavaScript 运行时间决定本地 WebView 应替换时 :

```typescript
await WebViewCrash.restartWebView();
```

呼叫中写着一个待定的标记 `reason: 'manualRestart'`,然后本地代码重新启动 WebView。 Android 重现主机活动. iOS 重建 Capacitor 桥视图, 这样新建 `WKWebView` 创建,而不是重新装入当前页面.

## 本地自动重新启动

配置插件在 `capacitor.config.ts` 因此,即使JavaScript运行时间不可用,也会在本地代码中重新启动决定:

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

const webViewCrash: WebViewCrashPluginConfig = {
  // Keep native crash recovery enabled. This is the default.
  restartOnCrash: true,

  // Use a 5-field cron schedule in the device local timezone.
  // Do not combine restartCron with an active restartIntervalMs.
  restartCron: '0 3 * * *',

  // Optional delay before restarting after a crash.
  restartAfterCrashDelayMs: 0,
};

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

export default config;
```

对持续开放数天的应用程序使用预定重启:站台屏幕,控制室仪表板,售出点终端,仓库扫描仪,车辆平板电脑,或者任何无法依赖用户强制关闭的Capacitor应用程序. 重启是本地的, 写一个待定的标记 `reason: 'periodicRestart'`,然后创建新的 Webview.

设定 `restartIntervalMs` 您的产品可以容忍或设定的维护窗口 `restartCron` 诸如: `0 3 * * *` 每天3: 00重启. `restartCron` 在设备本地时区中使用 5- 字段语法并支持 `*`、列表、范围和步骤。 请不要同时配置两个调度: 本地初始化在 `restartCron` 设置和 `restartIntervalMs` 大于 `0`。用户将获得一个新的 JavaScript 运行时间, 因此在启用短间隔或 cron 调度之前, 持续未保存的形式状态、 已排队的事件和进行中的工作 .

## 配置类型

```typescript
export interface WebViewCrashPluginConfig {
  restartOnCrash?: boolean;
  restartIntervalMs?: number;
  restartCron?: string;
  restartAfterCrashDelayMs?: number;
}
```

## 平台说明

-   **iOS: (英语)** 对电容器的用法 `WebViewDelegationHandler` 在 Capacitor 重新装入 WebView 之前坚持崩溃元数据。 手动重启和计划重新启动重建 Capacitor 桥视图, 从而新建 `WKWebView` 创建实例。 不需要额外的权限 .
-   **机器人:** 注册 a 管理员 `WebViewListener` 并持续从 `onRenderProcessGone`. crash并计划重启重设桥接并再创建主机活动,给应用程序一个新鲜的Webview. 不需要额外的权限 .
-   **网络 :** 没有真正的浏览器崩溃检测 。 网络执行仅以本地存储来模拟恢复流量.

## 文档

-   [插件文件](https://capgo.app/docs/plugins/webview-crash/)
-   [正在获取指南](https://capgo.app/docs/plugins/webview-crash/getting-started/)
-   [示例应用程序](https://npmcn.com/package/%40capgo/capacitor-webview-crash/example-app)

## API 密码

-   [`getPendingCrashInfo()`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-getpendingcrashinfo)
-   [`clearPendingCrashInfo()`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-clearpendingcrashinfo)
-   [`simulateCrashRecovery()`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-simulatecrashrecovery)
-   [`restartWebView()`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-restartwebview)
-   [`addListener('webViewRestoredAfterCrash' | 'webViewRestoredAfterRestart', ...)`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-addlistenerwebviewrestoredaftercrash--webviewrestoredafterrestart-)
-   [`removeAllListeners()`](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-removealllisteners)
-   [接口](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-interfaces)
-   [类型异名](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-type-aliases)

恢复的WebView崩溃和重启检测的API控制器 .

### 获取PingingCrashInfo ()

```typescript
getPendingCrashInfo() => Promise<PendingCrashInfoResult>
```

如果存在的话, 返回待定的本地崩溃或重新启动标记 .

**回返情况:** `Promise<[PendingCrashInfoResult](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-pendingcrashinforesult)>`

* * *

### 清除PendingCrashInfo( )

```typescript
clearPendingCrashInfo() => Promise<void>
```

在应用程序处理回收后清除存储的标记 .

* * *

### 模拟崩溃恢复( )

```typescript
simulateCrashRecovery() => Promise<PendingCrashInfoResult>
```

创建一个假崩溃标记, 以便本地测试恢复流量 .

**回返情况:** `Promise<[PendingCrashInfoResult](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-pendingcrashinforesult)>`

* * *

### 重新启动 WebView ()

```typescript
restartWebView() => Promise<PendingCrashInfoResult>
```

存储手动重启标记并请求本地代码创建新鲜的WebView.

在Android上,这个重现了主机活动. 在iOS上,它重建 Capacitor 桥面,这样一个新的 `WKWebView` 实例创建,而不是重新装入当前页面.

**回返情况:** `Promise<[PendingCrashInfoResult](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-pendingcrashinforesult)>`

* * *

### 添加 listener ("webView Rested After Crash" +"webView Rested After Restart", ...) 的监听器

```typescript
addListener(eventName: 'webViewRestoredAfterCrash' | 'webViewRestoredAfterRestart', listenerFunc: (info: WebViewCrashInfo) => void) => Promise<PluginListenerHandle>
```

在新的 JavaScript 运行时间附加一个收听器后起火,一个匹配的标记仍然待定.

| 参数 | 类型 |
| --- | --- |
| **`eventName`** | `'webViewRestoredAfterCrash' | 'webViewRestoredAfterRestart'` |
| **`listenerFunc`** | `(info: [WebViewCrashInfo](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-webviewcrashinfo)) => void` |

**回返情况:** `Promise<[PluginListenerHandle](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-pluginlistenerhandle)>`

* * *

### 删除所有收听器( )

```typescript
removeAllListeners() => Promise<void>
```

删除所有插件听众.

* * *

### 接口

#### 待处理的崩溃信息

等待崩溃或重启标记返回 JavaScript .

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`value`** | `[WebViewCrashInfo](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-webviewcrashinfo) | null` | 存储崩溃或重启元数据,或 `null` 当没有标记待决时. |

#### 网络视频崩溃信息

上一个 WebView 进程死后或重新启动后, 本地捕获的元数据 .

| Prop | 类型 | 说明 |
| --- | --- | --- |
| **`platform`** | `[WebViewCrashPlatform](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-webviewcrashplatform)` | 检测并存储标记的平台. |
| **`timestamp`** | `number` | 当标记被写入时, 用毫秒表示 . |
| **`timestampISO`** | `string` | ISO-8601 版本,内容为 `timestamp`。 。 。 . |
| **`reason`** | `[WebViewCrashReason](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-webviewcrashreason)` | 平台特定原因为崩溃或重启标记. |
| **`url`** | `string` | 标记被写入时最后已知的 WebView URL . |
| **`didCrash`** | `boolean` | 仅来自 Android 的提示 `RenderProcessGoneDetail.didCrash()`。 。 。 . |
| **`rendererPriorityAtExit`** | `number` | 退出时只报告Android渲染器优先级. |
| **`appState`** | `[WebViewCrashAppState](https://npmcn.com/package/%40capgo/capacitor-webview-crash/#readme-webviewcrashappstate)` | 标记被写入时捕获到的只有iOS应用程序状态. |

#### 插件听筒

| Prop | 类型 |
| --- | --- |
| **`remove`** | `() => Promise<void>` |

### 类型异名

#### WebView CrashPlat窗体

生产被存储标记的平台.

`'android' | 'ios' | 'web'`

#### WebView CrashReason (英语)

上一个 WebView 失败或重新启动的原生原因报告 .

`'renderProcessGone' | 'webContentProcessDidTerminate' | 'periodicRestart' | 'manualRestart' | 'simulated'`

#### WebView CrashApp 状态

WebView进程死后,在iOS上捕获了最佳应用状态.

`'active' | 'inactive' | 'background' | 'unknown'`

## 常见问题

### @capgo/capacitor-webview-crash 是什么？

用于在本地检测WebView崩溃恢复并重启长期运行的Web Victor插件\.

### 如何安装 @capgo/capacitor-webview-crash？

在项目目录运行 npm install @capgo/capacitor-webview-crash，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@capacitor/core（\>=8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @capgo/capacitor-webview-crash 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @capgo/capacitor-webview-crash 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @capgo/capacitor-webview-crash 可以商用吗？

@capgo/capacitor-webview-crash 使用 MPL-2\.0 许可。弱 Copyleft：可以商用，也可以和闭源代码一起使用；但如果分发时修改了 MPL 授权的文件，这些文件的修改需以 MPL 开源。以上为概括，不构成法律意见，请以许可原文为准。

### @capgo/capacitor-webview-crash 的下载量有多少？

根据 npm 官方下载统计，@capgo/capacitor-webview-crash 在 2026/10/09 – 2026/11/07 这 30 天内被下载 72,537 次，日均约 2,418 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @capgo/capacitor-webview-crash 还在维护吗？

最新版本 8\.1\.13 发布于 2026/10/15（25 天前）；至今共发布 18 个版本，其中过去 12 个月发布了 18 个；首次发布于 2026/04/29。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

