美国联邦紧急管理局
紧急指南中,小错误可能会迅速升级为紧急事件。
- Google Play 安装
- 1.6百万
- 1.6百万
- 4.0
问题
用户打开应用
应用程序启动时使用现有的捆绑包。更新器检查是否有新版本,并在后台下载。
当前会话继续使用旧版本
在剩余的那段会话中,用户将运行之前修复之前安装的code。
当用户离开应用时,更新器会安装新捆绑包。他们会在下一次打开应用时看到它。
对于大多数发布,这是一个合理的权衡。当会话启动后必须运行新版本时,请使用直接更新模式。
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.
用户打开应用程序时,不应再次遇到破损的屏幕,直到修复生效。
您希望在启动时运行修补的 JavaScript,而不是在下一次会话中。
必须在用户首次看到的屏幕上显示的当前条款、通知或事件内容。
解决方案
启动时,更新器会在您的启动屏幕显示期间检查。如果有可用的新捆绑包,它会下载并在启动屏幕消失之前应用。
启动时无需等待。用户在下一次会话中看到更新
用户在首屏看到新版本。他们在启动屏幕上等待下载
如何工作
直接模式是原生配置,因此它在商店构建中首先发布。随后,每个live update都会遵循它。命令来自Capgo文档
在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 },
}
直接更新处理
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可以在云端生成它。
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
直接更新
直接更新
import { CapacitorUpdater } from '@capgo/capacitor-updater'
await CapacitorUpdater.notifyAppReady()
直接更新
直接更新是一种交易:在启动时等待几秒钟,以便在首屏上看到新版本。
在capacitor.config.ts中设置autoUpdate。每种模式决定在用户等待时是否应应用更新。
3
Instant 应用模式在 autoUpdate 中
直接模式需要 @capacitor/启动屏幕,设置 launchAutoHide 为 false,autoSplashscreen 为 true。更新器在更新应用程序或知道不需要更新时隐藏启动屏幕。
autoSplashscreen
每种直接模式都需要
用户在启动时等待下载,并且始终可以在使用中重新加载应用程序。计划考虑两种情况。
--delta
每次直接更新上传时都推荐使用
在这种情况下,使用直接模式时,当前会话必须运行新的code。其他情况下,请保留默认设置。
支付、登录或数据错误,仅仅再运行一次旧版code已经太麻烦了。
安装时应用最新的包裹,立即在新用户的当前引导中启动
事件页面、通知或条款必须在用户打开应用时保持最新
修复web层安全问题,需要从应用启动时立即运行。native code 中的修复仍需要发布到应用商店
样式调整和小功能通常不值得等待应用启动。默认模式会在下一次会话中应用它们
始终、周期性地(每10分钟,默认)检查并在应用打开时应用更新。保存状态之前不要依赖它
启动等待时间是更新检查和下载时间。delta更新会将下载限制在更改的文件
典型 API 延迟
仅下载更改的文件
每月更新次数
找到匹配团队需求的解决方案
使用Capacitor构建的应用
紧急情况、健康和公民应用不能等待几天来修复一个破损的清单、资源链接或特定位置的通知。直接更新让Web层可以在修复批准后立即移动。
紧急指南中,小错误可能会迅速升级为紧急事件。
Conecte SUS
设备间版本安全指引的公民身份工作流程
NuTriQ 创始人
“通过即时推送生产 OTA 更新而不必等待完整 App Store 审核周期,这对我们来说是一个巨大的运营优势。”
drivolino GmbH 首席开发官
“Capgo Capacitor 更新器插件彻底改变了我们发布更新的方式。过去的几天现在只需要几分钟。”
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 在每次前台时检查并立即应用下载完成时,即使用户正在使用应用。
Updater 设置直接模式在用户等待时应用更新。没有 @capacitor/splash-screen、autoSplashscreen:true 和 launchAutoHide:false,用户可以看到闪烁或旧 UI 之前重载。有它们,Splash Screen 将保持打开直到更新被应用或更新器知道没有更新需要。
Splash Screen 处理不。autoUpdate 位于 capacitor.config 中,这个配置在构建时被读入原生应用。将新设置在商店发布后,之后的每个 live update 都会遵循新的模式。
原生兼容性文档atInstall 只在原生应用的初始安装或商店更新后立即应用更新,然后行为如默认值。 onLaunch 立即应用于从杀死状态启动应用时。 always 在每次前台时检查并立即应用下载完成时,即使用户正在使用应用。
Updater 设置