从 V3 升级到 V4
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
为什么要升级
“为什么进行此次升级”章节在与 Discord 社区的开发者们深入交流后,我发现之前的手动模式过于繁琐且不够安全。例如,它无法实现自动回滚(auto-revert),如果手动更新失败,用户必须卸载并重新安装 App,这种用户体验(UX)非常糟糕。
与此同时,我决定借此机会为大家提供更大的自由度,并移除我之前设计的所有糟糕的 code。
安装
“安装”章节npm i @capgo/capacitor-updater@4
云端自动更新
“云端自动更新”章节如果你的 App 使用的是基础示例代码,那么可以放心迁移到新版本,尽情体验吧!
自托管自动更新
“自托管自动更新”章节对你而言,操作依然简单,变更如下:
- 配置项名称从
autoUpdateUrl中的updateUrl - Endpoint 方法已从
GET变更为 POST
手动更新用户
标题为 “Manual users” 的章节这对你来说是最重大的变化,但也是最棒的!你将获得大量改进,请仔细阅读。
autoUpdateUrl会变为updateUrl因为该设置现在也可以在 manual 模式下使用了- 删除
cancelDelay以及delayUpdate改为使用setDelay - 不再有
versionName在集合中 - 变更
version键,此前大多数函数都会将其作为对象返回BundleInfo
interface BundleInfo { id: string; version: string; downloaded: string; status: 'success' | 'error' | 'pending' | 'downloading'}- 重命名了容易引起误解的名称(虽然解释起来可能不够直观,但实际使用时新名称更容易理解):
- 原先被称为
version现在指代bundle id指代旧版的version原先是一个 10 字符的随机字符串,而这个id是访问您的 bundles 唯一可靠且唯一的方式,例如7Dfcd2RedN.version现在请参考versionName你为 bundle 选择的类型,例如1.0.0
- 原先被称为
updateUrl从...迁移到get改为post,由于自定义 header 给部分用户带来了问题,而且 POST 更合理,所有之前的 header 都移到 body 并加前缀cap_消失。versionName方法已被删除,改用getId- list 现在返回一组
BundleInfo - 重命名
getId中的getDeviceId autoUpdate默认会变为 true,如果你使用 Manual 模式,请将其设为 false。
新闻
“新闻”章节- 方法
getLatest,此方法允许您从设置了updateUrl的最新可用版本中获取。 - 方法
setDelay他们会采取{种:“background” | “kill” | “nativeVersion” | “date”,值? : string}作为参数,为不同模式设置延迟。 - 方法
next,以便在下次进入后台时设置版本,与set立即执行的方式相反。 - 方法
isAutoUpdateEnabled,以便告知您是否处于 auto-update 上下文中 - 事件
downloadComplete当下载进度达到 100% 时 - 新增必填字段
version在 download 方法中 notifyAppReady在 manual 模式下也变为必填,否则若 10 秒内未调用,应用将回滚至旧版本。
@lincolnthree 非常感谢您发起这项工作,没有您的帮助,这次更新根本无法实现。
从 V3 升级到 V4
“从 V3 升级到 V4”章节如果你正在使用 从 V3 升级到 V4 要规划 live update 的交付,请将其与 Capgo Live Updates 用于 Capgo Live Updates 中的产品工作流, 概览 用于 Overview 中的实现细节, 功能 用于 Features 中的实现细节, 更新行为 有关 Update Behavior 中的实现细节,请参阅 更新类型 关于 Update Types 中的实现细节。