@capgo/capacitor-webview-version-checker

中文文档
8.2.19发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4万

用于检查已过时的Android WebView引擎,排放状态事件,并呈现本地更新提示的 Capacitor 插件.

中文使用文档
文档目录19 节
  1. *免费开始*
  2. 主要特点
  3. 安装
  4. 使用量
  5. 为什么WebView版本检查器?
  6. 我们为什么要这么做
  7. Android 提供者处理
  8. API 密码
  9. 检查(...)
  10. 启动监测(...)
  11. 停止监视 ()
  12. 获取最后状态( C)
  13. 显示 Update Prompt (...)
  14. 打开更新页(...)
  15. 添加倾听器( “ 状态已改变 ” ,...)
  16. 添加倾听器 ('web ViewLatest',...)
  17. 添加倾听器 ('webView Outdated',...)
  18. 接口
  19. 类型异名

@capgo/capor-webview-version-检查器

在您的 Capacitor app 中检测出已过时的 WebView 引擎并促使用户更新, 在旧的 Android System WebView 版本打破您的UI 之前.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

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

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-webview-version-checker 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-webview-version-检查器到我的Capacitor应用上并把它接上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-webview-version-checker for Capacitor apps

主要特点

  • 检查数字 : check() 返回WebView是否更新、过时或未知.
  • 监测数字 : startMonitoring() 与 statusChanged, (中文(简体) ), webViewLatest 财务报告和审定财务报表 webViewOutdated 事件.
  • 更新提示数字 : showUpdatePrompt() 显示本地提示, openUpdatePage() 打开正确的更新页面.
  • 政策: 最小版本规则,带有 latestVersion 为明确的目标.
  • 最后状态数字 : getLastStatus() 返回最新结果.
  • 平台:iOS,Android和Web. 为Android系统WebView所建. 在iOS上,WebView遵循了OS版本和Apple更新帮助的即时链接.

安装

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

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

然后使用下列提示:

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

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

bun add @capgo/capacitor-webview-version-checker
bunx cap sync

使用量

主用例:默认情况下浏览器列表-风格相容性检查.

插件在框外使用此策略, 即使您没有添加任何插件选项 :

  • minimumDeviceSharePercent 默认为 3
  • 版本共享数据来自构建时间生成的由 caniuse 生成的内置数据集
  • 默认流量不需要运行时间版本共享 URL 调用

默认设置( 没有插件设置) :

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    WebviewVersionChecker: {},
  },
};

export default config;

简单配置( O)

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    WebviewVersionChecker: {
      autoPromptOnOutdated: true,
      autoPromptDismissible: false,
    },
  },
};

export default config;

有自定义阈值和自定义数据集的高级模式 :

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    WebviewVersionChecker: {
      autoCheckOnLoad: true,
      autoPromptOnOutdated: true,
      minimumDeviceSharePercent: 3,
      versionShareByMajor: {
        '137': 58.2,
        '136': 21.3,
        '135': 4.6,
        '134': 2.1,
      },
    },
  },
};

export default config;

这是什么意思:

  • minimumDeviceSharePercent: 3 意思是"只有在主要版本仍然代表我数据集中至少3%的设备时,才考虑一个版本相容".
  • versionShareByMajor 是您自己的数据集地图,其中:
    • 键=主要版本(例如: 137(中文(简体) )
    • 数值=份额(百分比)0..100(中文(简体) )
  • 若您不提供 versionShareByMajor,插件使用其内置生成的数据集.

您可以以两种方式提供共享数据:

  • 与 versionShareByMajor (如上所示)
  • 远程 versionShareApiUrl 返回其中一个形状:
    • { "versionShareByMajor": { "137": 54.2, "136": 23.8 } }
    • { "shareByMajor": { "137": 54.2, "136": 23.8 } }
    • { "versions": [{ "major": 137, "share": 54.2 }, { "version": "136.0.0.0", "percent": 23.8 }] }

如果你准备好了 versionShareApiUrl,插件在运行时获取该 URL,并将其用作覆盖.

评价命令:

  1. 浏览器列表风格的阈值模式( E)minimumDeviceSharePercent +共享数据集)首先被使用. 默认这是 3% 与内置生成的数据集.
  2. 替换插件比较 latestVersion 编号 : latestVersionApiUrl。 。 。 .
  3. 否则它会回到 minimumMajorVersion。 。 。 .

高级使用 JavaScript( 手动检查、 收听器、 自定义提示) :

import { WebviewVersionChecker } from '@capgo/capacitor-webview-version-checker';

const listener = await WebviewVersionChecker.addListener('webViewOutdated', (status) => {
  console.log('Outdated WebView detected', status);
});

const status = await WebviewVersionChecker.check({
  latestVersionApiUrl:
    'https://versionhistory.googleapis.com/v1/chrome/platforms/android/channels/stable/versions?page_size=1',
  minimumMajorVersion: 124,
  showPromptOnOutdated: true,
  autoPromptDismissible: false,
  promptTitle: 'Update WebView',
  promptMessage: 'Your WebView is outdated. Please update to continue safely.',
  promptUpdateButtonText: 'Update now',
  promptCancelButtonText: 'Later',
});

console.log('WebView status', status);

// later
listener.remove();

为什么WebView版本检查器?

控制器已经通过配置提供了内置的 WebView 最小检查 :

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  android: {
    minWebViewVersion: 124,
  },
  server: {
    errorPath: 'unsupported-webview.html',
  },
};

export default config;

我们为什么要这么做

  • android.minWebViewVersion 是静态配置; 它不给出运行时插件事件, 如 webViewOutdated。 。 。 .
  • 与 server.errorPath,用户会被重定向到静态错误页面(硬块 UX),而不是在正常的应用程序流中看到本地模式.
  • 无 server.errorPath,Capacitor只记录了这个问题,但不提供本地更新的即时+存储深链接UX.
  • 这个插件给出了软执行:用户仍然可以打开/使用该应用程序,获得本地更新模式,你决定是否稍后需要更新.
  • 主用例:此插件将浏览器list-style兼容逻辑带入Android WebView(例如"至少3%的设备仍然使用支持版本"),同时保持了您的应用程序的可用性.

Android 提供者处理

插件解决了活动 WebView 提供者软件包和版本,然后将路由更新到正确的软件包的链接:

  • Android 5-6和10+: Android System WebView (英语:com.google.android.webview(中文(简体) )
  • Android 7-9: Google Chrome (英语:com.android.chrome(中文(简体) )

当提供者无法检测时,倒回路由遵循上面相同的API-范围规则.

API 密码

公共API用于检查WebView新鲜度并指导用户更新.

检查(...)

check(options?: CheckWebViewOptions | undefined) => Promise<WebViewVersionStatus>

运行版本检查并返回最新已知状态.

参数类型
optionsCheckWebViewOptions

回返情况: Promise<WebViewVersionStatus>


启动监测(...)

startMonitoring(options?: StartMonitoringOptions | undefined) => Promise<MonitoringStateResult>

启用背景监测( 通常在应用程序恢复上) .

参数类型
optionsStartMonitoringOptions

回返情况: Promise<MonitoringStateResult>


停止监视 ()

stopMonitoring() => Promise<MonitoringStateResult>

禁用监控 .

回返情况: Promise<MonitoringStateResult>


获取最后状态( C)

getLastStatus() => Promise<LastStatusResult>

返回最后解决状态,或 null 如果还没有检查.

回返情况: Promise<LastStatusResult>


显示 Update Prompt (...)

showUpdatePrompt(options?: ShowUpdatePromptOptions | undefined) => Promise<ShowUpdatePromptResult>

显示本地提示请用户更新 WebView .

参数类型
optionsShowUpdatePromptOptions

回返情况: Promise<ShowUpdatePromptResult>


打开更新页(...)

openUpdatePage(options?: OpenUpdatePageOptions | undefined) => Promise<OpenUpdatePageResult>

直接打开已配置的更新页面.

参数类型
optionsOpenUpdatePageOptions

回返情况: Promise<OpenUpdatePageResult>


添加倾听器( “ 状态已改变 ” ,...)

addListener(eventName: 'statusChanged', listenerFunc: (status: WebViewVersionStatus) => void) => Promise<PluginListenerHandle>

为每一次成功的状态评价被开除.

参数类型
eventName'statusChanged'
listenerFunc(status: WebViewVersionStatus) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器 ('web ViewLatest',...)

addListener(eventName: 'webViewLatest', listenerFunc: (status: WebViewVersionStatus) => void) => Promise<PluginListenerHandle>

当州政府决定 latest。 。 。 .

参数类型
eventName'webViewLatest'
listenerFunc(status: WebViewVersionStatus) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器 ('webView Outdated',...)

addListener(eventName: 'webViewOutdated', listenerFunc: (status: WebViewVersionStatus) => void) => Promise<PluginListenerHandle>

当州政府决定 outdated。 。 。 .

参数类型
eventName'webViewOutdated'
listenerFunc(status: WebViewVersionStatus) => void

回返情况: Promise<PluginListenerHandle>


接口

WebViewVersion 状态

当前检测到的 WebView 状态的快照 .

Prop类型说明
platformWebViewPlatform生成状态的原生平台.
stateWebViewVersionState已解析版本状态 .
isLatestboolean方便布尔等值于 state === 'latest'。 。 。 .
checkedAtstringISO-8601 检查的印章.
reasonstring人可读解所报状态.
currentVersionstring当前WebView(或iOS系统WebKit)版本字符串.
currentMajorVersionnumber当前检测到的主要版本( 如果可解析) .
latestVersionstring已解析用于比较的最新版本 .
latestMajorVersionnumber已解析出最新主要版本( 若可解析) .
currentVersionSharePercentnumber已安装的 WebView 主版本的设备共享百分比 。 仅在有版本共享数据集并包括当前主要版本时才会出现.
minimumDeviceSharePercentnumber兼容阈值模式使用的配置阈值 。 仅在 minimumDeviceSharePercent 要求进行这一检查.
versionShareSourcestring用于版本共享数据的出处. 数值: - versionShareByMajor (内置数据集) - versionShareApiUrl (远程数据集) - generatedVersionShareByMajor (构建时生成的内置数据集)
deviceShareErrorstring兼容阈值模式的诊断信息 。 现时 minimumDeviceSharePercent 但无法对阈值检查进行全面评估.
providerPackagestring活动WebView提供者的Android包名.
updateUrlstring过期时应当打开更新的 URL .
sourcestring检查执行的内部源标识符.

检查Web View 选项

运行 WebView 版本检查的选项 .

Prop类型说明默认
showPromptOnOutdatedboolean强制显示已检测到已过期的 WebView 本地提示 .false
sourcestring状态有效载荷中包含的可选标记,以便识别检查来源."manual"

监测 国家成果

产生监测控制的有效载荷.

Prop类型说明
monitoringboolean监测是否正在进行中 .
checkOnResumeboolean监视时是否运行对应用程序恢复的检查 .
autoPromptOnOutdatedboolean是否过时的检查自动触发本地提示 .

开始监视选项

启动监视器模式的选项 .

Prop类型说明默认
checkOnStartboolean监控开始后立即检查.true
checkOnResumeboolean是否在启用监视时进行前景检查 .true

最后状态

最后已知的检查快照 .

Prop类型说明
statusWebViewVersionStatus | null在第一次检查完成前不要做.

显示最新结果

结果有效载荷 showUpdatePrompt()。 。 。 .

Prop类型说明
shownboolean是否实际显示本地提示 .
openedUpdatePageboolean更新页面是否从即时动作打开 .

显示最新选项

显示本地更新提示的选项 .

Prop类型说明
titlestring提示标题 .
messagestring即时消息.
updateButtonTextstring更新 CTA 标签 .
cancelButtonTextstring取消CTA标签 .
updateUrlstring如果选中更新动作, 可打开可选 URL .

打开更新页面

结果有效载荷 openUpdatePage()。 。 。 .

Prop类型说明
openedboolean是否打开更新 URL 成功 .
urlstring尝试的 URL .

打开更新页面选项

直接打开更新页面的选项 .

Prop类型说明
updateUrlstring可选 URL 覆盖 .

插件听筒

Prop类型
remove() => Promise<void>

类型异名

网络视频Platform

'android' | 'ios' | 'web'

WebViewVersion 状态

'latest' | 'outdated' | 'unknown'

版本与发布记录

@capgo/capacitor-webview-version-checker 共发布 22 个版本,首次发布于 2026/02/19;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.19latest2026/10/1525 天前
8.2.182026/10/1327 天前
8.2.172026/10/091 个月前
8.2.162026/10/081 个月前
8.2.142026/10/081 个月前
8.2.152026/10/081 个月前

关于 @capgo/capacitor-webview-version-checker 的常见问题

@capgo/capacitor-webview-version-checker 是什么?

用于检查已过时的Android WebView引擎,排放状态事件,并呈现本地更新提示的 Capacitor 插件.

如何安装 @capgo/capacitor-webview-version-checker?

在项目目录运行 npm install @capgo/capacitor-webview-version-checker,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-webview-version-checker 支持 TypeScript 吗?

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

@capgo/capacitor-webview-version-checker 支持 ESM 还是 CommonJS?

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

@capgo/capacitor-webview-version-checker 可以商用吗?

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

@capgo/capacitor-webview-version-checker 的下载量有多少?

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

@capgo/capacitor-webview-version-checker 还在维护吗?

最新版本 8.2.19 发布于 2026/10/15(25 天前);至今共发布 22 个版本,其中过去 12 个月发布了 22 个;首次发布于 2026/02/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。