也支持 Cordova 和 Electron
章节标题为“也支持 Cordova 和 Electron”Capgo live updates 并不局限于 Capacitor。你可以在同系列客户端插件中使用相同的后端和 CLI:
Cordova 更新器
适用于 Cordova iOS 7+ 和 Android 13+ 的 OTA 更新。
Electron 更新器
使用相同的 API 实现桌面端 Live Update。
概览
“概览”章节@capgo/capacitor-updater 发布 JavaScript bundle 更新 无需等待应用商店审核,即可将更新推送到生产环境的 Capacitor 应用中。支持在后台下载已签名的 bundle,通过 channels 和延迟规则控制发布节奏,并在发生问题时进行回滚。 notifyAppReady() 未在配置的范围内调用 appReadyTimeout.
典型场景:修复生产环境 Bug、按 channel 进行分阶段 Beta 测试、UI A/B 测试,以及紧急回滚至内置 bundle。
平台支持
标题为“平台支持”的部分| 平台 | 支持 |
|---|---|
| iOS | 是 |
| Android | 是 |
| Web 端 | Bundles 适用于原生壳中的 WebView 层,而非托管的静态网站 |
Cordova 和 Electron 客户端使用上方链接的同级插件,后端同样是 Capgo。
核心功能
标题为“核心功能”的章节notifyAppReady- 通知原生层 JavaScript 已成功初始化。setUpdateUrl- 在运行时动态设置应用的更新 URL。setStatsUrl- 在运行时动态设置应用的统计 URL。setChannelUrl- 在运行时动态设置应用的 channel URL。
公开 API
标题为“公开 API”的章节| 方法 | 描述 |
|---|---|
notifyAppReady | 通知原生层 JavaScript 已成功初始化。 |
setUpdateUrl | 在运行时动态设置应用的更新 URL。 |
setStatsUrl | 在运行时动态设置应用的统计 URL。 |
setChannelUrl | 在运行时动态设置应用的 channel URL。 |
download | 从提供的 URL 下载新 bundle 以备后续安装。 |
next | 设置在应用进入后台或重启时激活下一个 bundle。 |
set | 设置当前 bundle 并立即重载应用。 |
delete | 从本地存储中删除 bundle 以释放磁盘空间。 |
setBundleError | 在手动更新模式下,手动将 bundle 标记为失败/错误。 |
list | 获取应用中所有已下载到本地的 bundle。 |
reset | 将应用重置为已知的稳定 bundle。 |
current | 获取当前正在运行的 bundle 信息。 |
reload | 手动重载应用以应用待处理的更新。 |
setMultiDelay | 配置应用待处理更新前必须满足的条件。 |
cancelDelay | 取消所有延迟条件并立即应用待处理的更新。 |
getLatest | 检查更新服务器以获取最新的 bundle 版本。 |
setChannel | 为该设备设置本地运行时更新通道。这不会创建 dashboard/API 设备覆盖。 |
unsetChannel | 移除设备的通道分配并返回默认通道。 |
getChannel | 获取当前分配给该设备的通道。 |
listChannels | 获取该设备可自主分配的所有通道列表。 |
setCustomId | 为该设备设置自定义标识符。 |
getBuiltinVersion | 获取内置的 bundle 版本(即随 Native Build 应用发布的原始版本)。 |
getDeviceId | 获取该设备唯一的、保护隐私的标识符。 |
getPluginVersion | 获取应用中安装的 Capacitor Updater plugin 版本。 |
isAutoUpdateEnabled | 检查当前是否已启用自动更新。 |
removeAllListeners | 移除所有已注册到该 plugin 的事件监听器。 |
addListener | 监听 App 中的 bundle download 事件。在下载开始、下载中及下载完成后各触发一次。这将返回下载过程中的所有进度百分比。 |
addListener | 监听无需更新事件,适用于您希望每次启动 App 时都进行强制检查的场景。 |
addListener | 监听可用更新事件,适合每次应用启动时都要强制检查更新的场景。 |
addListener | 监听 downloadComplete 事件。 |
addListener | 监听 breaking 更新事件:当后端将更新标记为与当前应用不兼容时触发。其 payload 与旧版 majorAvailable 监听器相同。 |
addListener | 监听应用内的 major 更新事件,当 major 更新因设置 disableAutoUpdateBreaking 被阻止时会通知你。 |
addListener | 监听应用内的更新失败事件,用于告知下次应用启动时更新安装失败。 |
addListener | 监听应用内的 set 事件,用于告知 bundle 已成功应用。该事件会在原生层保留,直到 JavaScript 消费它,因此如果应用在监听器挂载前重新加载,最后一次待处理的 set 事件会在监听器订阅后送达。 |
addListener | 监听应用内的 set next 事件,用于告知某个 bundle 已被排队为下一个待安装的 bundle。 |
addListener | 监听应用内的下载失败事件,用于告知 bundle 下载失败。 |
addListener | 监听应用内的 reload 事件,用于告知重新加载已发生。 |
addListener | 监听应用内的 app ready 事件,用于告知应用已准备就绪。该事件会在原生层保留,直到 JavaScript 消费它,因此即使监听器在应用启动较晚时才挂载,重新加载后它仍能送达。 |
addListener | 监听 channel 私有事件,在尝试设置不允许设备自行分配的 channel 时触发。 |
addListener | 监听 Android 上 flexible update 的状态变化。 |
isAutoUpdateAvailable | 检查 auto-update 功能是否可用(未被自定义服务器配置禁用)。 |
getNextBundle | 获取已排队、将在下次 reload 时激活的 bundle 信息。 |
getFailedUpdate | 获取最近一次加载失败的 bundle 信息。 |
setShakeMenu | 启用或禁用用于调试和测试的摇一摇手势菜单。 |
isShakeMenuEnabled | 检查摇一摇手势调试菜单当前是否已启用。 |
setShakeChannelSelector | 在运行时启用或禁用摇一摇 channel 选择器。 |
isShakeChannelSelectorEnabled | 检查摇一摇 channel 选择器当前是否已启用。 |
getAppId | 获取当前配置的、用于与 update server 通信的 App ID。 |
setAppId | 动态修改用于与 update server 通信的 App ID。 |
getAppUpdateInfo | 获取应用在 App Store 或 Play Store 的上架状态信息。 |
openAppStore | 在 App Store 或 Play Store 中打开应用页面。 |
performImmediateUpdate | 在 Android 上执行立即应用内更新。 |
startFlexibleUpdate | 在 Android 上启动灵活的应用内更新。 |
completeFlexibleUpdate | 在 Android 上完成灵活的应用内更新。 |
单一事实来源
标题为“单一事实来源”的部分此参考文档同步自 src/definitions.ts 中的 capacitor-updater.
从 @capgo/capacitor-updater 继续
标题为“从 @capgo/capacitor-updater 继续”如果你正在使用 @capgo/capacitor-updater 要规划原生插件工作,请将其与 使用 @capgo/capacitor-updater 用于“使用 @capgo/capacitor-updater”中的原生能力, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 查看由 Capgo 提供的 Capacitor 插件中的实现细节, 添加或更新插件 关于“添加或更新插件”中的实现细节,以及 Ionic Enterprise 插件替代方案 关于“Ionic Enterprise 插件替代方案”中的产品工作流。