跳过主要内容
直接更新

在用户打开应用时显示最新版本

By default, a live update runs one session after it downloads. Direct update modes apply it at launch instead, behind your splash screen, so the first screen users see is already the new version.

来自马丁的专业支持

自动更新:安装时、启动时或始终
更新屏幕保持直到更新准备好
增量下载使等待时间短

问题

直接更新的缺点

在默认模式下,更新会延迟一会儿

1

用户打开应用

应用程序启动时使用现有的捆绑包。更新器检查是否有新版本,并在后台下载。

2

当前会话继续使用旧版本

在剩余的那段会话中,用户将运行之前修复之前安装的code。

3

当用户离开应用时,更新器会安装新捆绑包。他们会在下一次打开应用时看到它。

对于大多数发布,这是一个合理的权衡。当会话启动后必须运行新版本时,请使用直接更新模式。

For most releases, that is the right trade-off. When the session that starts after your upload must run the new code, use a direct update mode.

支付或登录流程出现问题

direct-updates

用户打开应用程序时,不应再次遇到破损的屏幕,直到修复生效。

A web-layer 安全修复

您希望在启动时运行修补的 JavaScript,而不是在下一次会话中。

A dated 变更

必须在用户首次看到的屏幕上显示的当前条款、通知或事件内容。

解决方案

直接更新模式中的变化

启动时,更新器会在您的启动屏幕显示期间检查。如果有可用的新捆绑包,它会下载并在启动屏幕消失之前应用。

默认模式(atBackground)

1
用户打开应用程序
2
应用程序显示当前版本
3
更新在后台下载
4
下一次启动时,更新将应用

启动时无需等待。用户在下一次会话中看到更新

直接模式(onLaunch)

1
用户打开应用,启动屏幕保持显示
2
更新器检查并下载更改的文件
3
更新应用,启动屏幕隐藏,新版本显示

用户在首屏看到新版本。他们在启动屏幕上等待下载

更新行为文档

如何工作

如何设置直接更新

直接模式是原生配置,因此它在商店构建中首先发布。随后,每个live update都会遵循它。命令来自Capgo文档

  1. 添加启动屏幕插件并选择模式

    在capacitor中安装@capacitor/splash-screen,然后在capacitor.config.ts中设置autoUpdate、autoSplashscreen和launchAutoHide。

    npm install @capacitor/splash-screen
    npx cap sync
    
    // capacitor.config.ts
    plugins: {
      CapacitorUpdater: {
        autoUpdate: 'onLaunch', // or 'atInstall' / 'always'
        autoSplashscreen: true,
        keepUrlPathAfterReload: true,
      },
      SplashScreen: { launchAutoHide: false },
    }
    直接更新处理
  2. 直接更新

    capacitor.config is compiled into the native app, so the new mode reaches users with your next store release. Capgo Build can produce it in the cloud.

    npx @capgo/cli@latest build request --platform ios
    npx @capgo/cli@latest build request --platform android
    Capgo配置文件会被编译到原生应用中,因此新的模式会在下一个商店发布中传递给用户。__CAPGO_KEEP_1__ Build可以在云端生成它。
  3. __CAPGO_KEEP_0__ Build文档

    Users wait for the download at launch, so send only the changed files. The CLI detects instant apply modes and prompts for a delta upload.

    npx @capgo/cli@latest bundle upload --channel production --delta
    直接更新
  4. 直接更新

    直接更新

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.notifyAppReady()
    直接更新

选择适合您的应用程序的模式

直接更新是一种交易:在启动时等待几秒钟,以便在首屏上看到新版本。

三种即刻应用模式

在capacitor.config.ts中设置autoUpdate。每种模式决定在用户等待时是否应应用更新。

  • 在安装时:只在新安装或原生应用商店更新后立即执行
  • onLaunch: 当应用程序从杀死状态启动时(冷启动)
  • always: 每次前台检查时,包括应用程序打开时
Updater设置

3

Instant 应用模式在 autoUpdate 中

启动屏幕处理

直接模式需要 @capacitor/启动屏幕,设置 launchAutoHide 为 false,autoSplashscreen 为 true。更新器在更新应用程序或知道不需要更新时隐藏启动屏幕。

  • 不需要手动调用 SplashScreen.hide()
  • keepUrlPathAfterReload 保持用户在重新加载后保持在同一路线
  • 当启动屏幕隐藏时,如果需要额外的工作,请监听 appReady
启动屏幕处理

autoSplashscreen

每种直接模式都需要

权衡考虑

用户在启动时等待下载,并且始终可以在使用中重新加载应用程序。计划考虑两种情况。

  • 使用 --delta 上传,只下载更改的文件
  • 保存和恢复应用程序状态,以便重新加载时不会丢失用户进度
  • 保持默认模式,当延迟一会儿足够时
Delta 更新文档

--delta

每次直接更新上传时都推荐使用

何时使用直接更新

在这种情况下,使用直接模式时,当前会话必须运行新的code。其他情况下,请保留默认设置。

关键 bug 修复

支付、登录或数据错误,仅仅再运行一次旧版code已经太麻烦了。

首次运行引导

安装时应用最新的包裹,立即在新用户的当前引导中启动

过时的内容

事件页面、通知或条款必须在用户打开应用时保持最新

安全补丁

修复web层安全问题,需要从应用启动时立即运行。native code 中的修复仍需要发布到应用商店

常规发布

样式调整和小功能通常不值得等待应用启动。默认模式会在下一次会话中应用它们

长时间保持打开的应用

始终、周期性地(每10分钟,默认)检查并在应用打开时应用更新。保存状态之前不要依赖它

保持启动等待时间短

启动等待时间是更新检查和下载时间。delta更新会将下载限制在更改的文件

~50ms

典型 API 延迟

Delta

仅下载更改的文件

1B+

每月更新次数

使用Capacitor构建的应用

公共信息应用需要紧急修复内容

紧急情况、健康和公民应用不能等待几天来修复一个破损的清单、资源链接或特定位置的通知。直接更新让Web层可以在修复批准后立即移动。

FEMA应用图标 天气

美国联邦紧急管理局

紧急指南中,小错误可能会迅速升级为紧急事件。

Google Play 安装
1.6百万
1.6百万
4.0
应用商店评分 MEDICAL

医疗

Conecte SUS

Google Play 安装
27.7M
应用商店评分
4.6
e-Título 应用程序图标 社会

e-Título

设备间版本安全指引的公民身份工作流程

Google Play 安装数
54.9M
应用商店评分
4.8

客户证明

使用Capgo的团队说什么

5.0/5 开发者团队评级 9,400+ 团队 查看评论

Kapil

NuTriQ 创始人

“通过即时推送生产 OTA 更新而不必等待完整 App Store 审核周期,这对我们来说是一个巨大的运营优势。”

Sergiu S

Sergiu S

drivolino GmbH 首席开发官

“Capgo Capacitor 更新器插件彻底改变了我们发布更新的方式。过去的几天现在只需要几分钟。”

Luis Dominguez

El que paga, Anirol

5 out of 5 stars

“Since I started using Capgo everything is faster, and I can give my users the time they deserve without neglecting my daily life.”

关于直接更新

什么时候使用它们、如何设置它们以及它们在发布时的成本。

我们应该使用直接更新还是默认的后台模式?

我们应该使用直接更新还是默认的后台模式?

Use the default for most releases: there is no wait at launch, and users get the update one session later. Use a direct mode when the session that starts after your upload must run the new code, for example a broken checkout or a web-layer security fix.

常见问题

什么是 atInstall、onLaunch 和 always 之间的区别?

atInstall 只在原生应用的初始安装或商店更新后立即应用更新,然后行为如默认值。 onLaunch 立即应用于从杀死状态启动应用时。 always 在每次前台时检查并立即应用下载完成时,即使用户正在使用应用。

Updater 设置

为什么需要 Splash Screen 插件?

直接模式在用户等待时应用更新。没有 @capacitor/splash-screen、autoSplashscreen:true 和 launchAutoHide:false,用户可以看到闪烁或旧 UI 之前重载。有它们,Splash Screen 将保持打开直到更新被应用或更新器知道没有更新需要。

Splash Screen 处理

我们可以用 live update 启用直接更新吗?

不。autoUpdate 位于 capacitor.config 中,这个配置在构建时被读入原生应用。将新设置在商店发布后,之后的每个 live update 都会遵循新的模式。

原生兼容性文档

什么是 atInstall、onLaunch 和 always 之间的区别?

atInstall 只在原生应用的初始安装或商店更新后立即应用更新,然后行为如默认值。 onLaunch 立即应用于从杀死状态启动应用时。 always 在每次前台时检查并立即应用下载完成时,即使用户正在使用应用。

Updater 设置

立即将下一个修复程序放在首屏

试验直接更新模式在测试构建中,并在自己的应用程序中测量启动等待

来自马丁的专业支持

14天免费试用,不需要信用卡