跳过内容

功能和设置

GitHub

查看 Github README 更多信息请参见CapacitorUpdater的配置选项:

CapacitorUpdater可以通过以下选项进行配置:

属性类型描述默认值
appReadyTimeoutnumber配置native插件在Android、iOS和Electron平台上等待更新的毫秒数。10000 // (10 seconds)
responseTimeoutnumber配置native插件在Android、iOS和Electron平台上等待API超时的毫秒数。20000 // (20 seconds)
autoDeleteFailedboolean配置是否在Android、iOS和Electron平台上自动删除失败的包。true
autoDeletePreviousboolean配置是否在Android、iOS和Electron平台上自动删除之前的包。true
autoUpdateboolean | ‘off’ | ‘atBackground’ | ‘atInstall’ | ‘onLaunch’ | ‘always’ | ‘onlyDownload’配置如何在Android、iOS和Electron平台上使用自动更新。true与“atBackground”相同,false与“off”相同。- off:禁用自动更新- atBackground:在应用程序切换到后台时自动检查和下载,然后在应用程序切换到后台时应用- atInstall:在新安装或原生应用更新后立即应用,否则使用atBackground- onLaunch:在启动时立即应用,否则在启动检查后使用atBackground- always:在自动更新运行时立即应用- onlyDownload:自动检查和下载,然后在应用程序切换到后台时应用。”atBackground” // true is still accepted
resetWhenUpdateboolean自动删除之前下载的包,当设备上安装了新版本的本机应用程序包时。可用于Android、iOS和Electron。true
updateUrlstring配置更新检查的URL/端点。可用于Android、iOS和Electron。https://plugin.capgo.app/updates
channelUrlstring配置用于频道操作的URL/端点。可用于Android、iOS和Electron。https://plugin.capgo.app/channel_self
statsUrlstring配置更新统计信息的URL/端点。可用于Android、iOS和Electron。设置为“”以禁用统计信息报告。https://plugin.capgo.app/stats
publicKeystring配置端到端实时更新加密的版本2的公钥。可用于Android、iOS和Electron。undefined6.2.0
versionstring配置应用程序的当前版本。这将用于第一次更新请求。如果未设置,插件将从本机code中获取版本。可用于Android、iOS和Electron。undefined4.17.48
directUpdateboolean | ‘always’ | ‘atInstall’ | ‘onLaunch’已弃用。使用“atInstall”、“onLaunch”或“always”模式代替:- false:永不进行直接更新- atInstall:与autoUpdate:“atInstall”相同- onLaunch:与autoUpdate:“onLaunch”相同- always:与autoUpdate:“always”相同- true:与“always”相同,以便于向后兼容。可用于Android、iOS和Electron。false5.1.0
autoSplashscreenboolean自动处理启动屏幕隐藏,使用即时应用模式时。启用后,插件将在更新应用或无需更新时自动隐藏启动屏幕。这消除了手动监听appReady事件并调用SplashScreen.hide()的需要。仅在autoUpdate设置为“atInstall”,“onLaunch”,或“always”时有效。为了保持向后兼容,仍支持Legacy directUpdate值。需要安装并配置@capacitor/splash-screen插件,launchAutoHide设置为false。需要启用自动更新。适用于Android和iOS。false7.6.0
periodCheckDelaynumber配置更新检查周期的延迟时间。单位为秒。适用于Android、iOS和Electron。不能小于600秒(10分钟)。600 // (10 minutes)
localS3boolean配置CLI使用本地服务器进行测试或自托管更新服务器。undefined4.17.48
localHoststring配置CLI使用本地服务器进行测试或自托管更新服务器。undefined4.17.48
localWebHoststring配置CLI使用本地服务器进行测试或自托管更新服务器。undefined4.17.48
localSupastring配置CLI使用本地服务器进行测试或自托管更新服务器。undefined4.17.48
localSupaAnonstring配置CLI使用本地服务器进行测试。undefined4.17.48
localApistring配置CLI使用本地api进行测试。undefined6.3.3
localApiFilesstring配置CLI使用本地文件api进行测试。undefined6.3.3
allowModifyUrlboolean允许插件动态从JavaScript侧修改updateUrl、statsUrl和channelUrl。false5.4.0
defaultChannelstring设置应用程序的默认频道在配置中。大小写敏感。这将设置将覆盖云中设置的默认频道,但仍将尊重云中设置的覆盖。undefined5.5.0
appIdstring配置应用程序ID在配置中。undefined6.0.0
keepUrlPathAfterReloadboolean配置插件以在重新加载后保留URL路径。警告:当重新加载时,‘window.history’将被清除。false6.8.0
disableJSLoggingboolean禁用JavaScript插件的日志记录。如果为true,插件将不会在JavaScript控制台中记录。只有原生日志会被执行。false7.3.0
shakeMenuboolean启用抖动手势以显示更新菜单(用于调试/测试目的)false7.5.0

capacitor.config.json:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 1000 // (1 second),
"responseTimeout": 10 // (10 second),
"autoDeleteFailed": false,
"autoDeletePrevious": false,
"autoUpdate": "onlyDownload",
"resetWhenUpdate": false,
"updateUrl": https://example.com/api/auto_update,
"channelUrl": https://example.com/api/channel,
"statsUrl": https://example.com/api/stats,
"publicKey": undefined,
"version": undefined,
"directUpdate": undefined,
"autoSplashscreen": undefined,
"periodCheckDelay": undefined,
"localS3": undefined,
"localHost": undefined,
"localWebHost": undefined,
"localSupa": undefined,
"localSupaAnon": undefined,
"localApi": undefined,
"localApiFiles": undefined,
"allowModifyUrl": undefined,
"defaultChannel": undefined,
"appId": undefined,
"keepUrlPathAfterReload": undefined,
"disableJSLogging": undefined,
"shakeMenu": undefined
}
}
}

capacitor.config.ts:

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
appReadyTimeout: 1000 // (1 second),
responseTimeout: 10 // (10 second),
autoDeleteFailed: false,
autoDeletePrevious: false,
autoUpdate: 'onlyDownload',
resetWhenUpdate: false,
updateUrl: https://example.com/api/auto_update,
channelUrl: https://example.com/api/channel,
statsUrl: https://example.com/api/stats,
publicKey: undefined,
version: undefined,
directUpdate: undefined,
autoSplashscreen: undefined,
periodCheckDelay: undefined,
localS3: undefined,
localHost: undefined,
localWebHost: undefined,
localSupa: undefined,
localSupaAnon: undefined,
localApi: undefined,
localApiFiles: undefined,
allowModifyUrl: undefined,
defaultChannel: undefined,
appId: undefined,
keepUrlPathAfterReload: undefined,
disableJSLogging: undefined,
shakeMenu: undefined,
},
},
};
export default config;

方法

方法

通知应用就绪()

context
notifyAppReady() => Promise<AppReadyResult>

Notify Capacitor Updater that the current bundle is working (a rollback will occur if this method is not called on every app launch) By default this method should be called in the first 10 sec after app launch, otherwise a rollback will occur. Change this behaviour with {@link appReadyTimeout}

设置更新URL(…) Promise<AppReadyResult>


setUpdateUrl(options: UpdateUrl) => Promise<void>

设置应用更新URL,用于检查更新

参数类型描述
optionsUpdateUrl用于检查更新的 URL。

自: 5.4.0


setStatsUrl(options: StatsUrl) => Promise<void>

设置应用的 statsUrl,用于发送统计数据。传入空字符串将禁用统计数据收集。

参数类型描述
optionsStatsUrl包含用于发送统计信息的 URL。

自从: 5.4.0


setChannelUrl(…)

标题:setChannelUrl(…)
setChannelUrl(options: ChannelUrl) => Promise<void>

设置应用程序的 channelUrl,这将用于设置 channel。

参数类型描述
optionsChannelUrl包含用于设置 channel 的 URL。

自从: 5.4.0


download(options: DownloadOptions) => Promise<BundleInfo>

从提供的 URL 下载一个新的包,应该是一个 zip 文件,包含文件或一个唯一 id 内的所有文件

ParamType描述
optionsDownloadOptions下载选项 {@link} DownloadOptions} 下载一个新的包 zip。

Returns: Promise<BundleInfo>


next(options: BundleId) => Promise<BundleInfo>

设置下次启动应用时使用的包

参数类型描述
optionsBundleId包含下次启动应用时设置的包ID。 {@link} BundleInfo.id}

返回: Promise<BundleInfo>


set(options: BundleId) => Promise<void>

设置当前包并立即重新加载应用

参数类型描述
optionsBundleId一个 {@link} 对象,包含要设置为当前的新包 ID。 BundleId} 对象

delete(options: BundleId) => Promise<void>

类型

copy to clipboard删除(…)描述
optionsBundleId一个 {@link} BundleId}对象,包含要删除的包的ID(注意,这是包ID,而不是版本名称)

list(options?: ListOptions | undefined) => Promise<BundleListResult>

获取本地下载的所有包

参数类型描述
optionsListOptionsThe {@link} ListOptions用于列出捆绑包的}

返回: Promise<BundleListResult>


reset(options?: ResetOptions | undefined) => Promise<void>

重置应用到捆绑包(苹果应用商店/谷歌应用商店发送的那个)或最后成功加载的捆绑包。 builtin 参数

类型描述包含 {@link}
optionsResetOptionsprotectedTokens ResetOptions.toLastSuccessful}, true 重置为内置的捆绑包并 false 会重置为最后一次成功加载的捆绑包。

current() => Promise<CurrentBundleResult>

获取当前捆绑包,如果没有设置则返回 builtincurrentNative是设备上安装的原始捆绑包

返回: Promise<CurrentBundleResult>


reload() => Promise<void>

重新加载视图


设置多次延迟(…)

标题:设置多次延迟(…)
setMultiDelay(options: MultiDelayConditions) => Promise<void>

设置一个 {@link} 延迟条件} date 延迟条件 background 延迟条件 nativeVersion 延迟条件 kill 延迟条件

延迟条件(不使用) 此函数的行为不一致,选项kill会在第一次kill后触发更新,而不是在下一次后台运行时。这个问题将在未来的重大版本中得到解决。类型描述
optionsMultiDelayConditions包含 {@link} MultiDelayConditions} 数组中的条件,用于设置

自从: 4.3.0


cancelDelay() => Promise<void>

取消 {@link} DelayCondition} 以立即处理更新。

自从: 4.0.0


getLatest(…)

getLatest(…)部分
getLatest(options?: GetLatestOptions | undefined) => Promise<LatestVersion>

从更新URL获取最新的捆绑包

参数类型
optionsGetLatestOptions

返回: Promise<LatestVersion>

自从: 4.0.0


setChannel(…)

setChannel(…)部分
setChannel(options: SetChannelOptions) => Promise<ChannelRes>

设置此设备的插件管理本地频道。频道必须 allow_device_self_set 必须启用才能正常工作。

setChannel() 验证频道与后端,存储设备本地选择的频道。它不会创建或更新后端设备覆盖,因此设备不会在Capgo控制台中显示为覆盖。只有控制台或公共API中创建的 assignments 才会在设备覆盖 UI 中显示。

重要注意事项:

  • 不要在启动时使用此方法设置频道。请在您的__CAPGO_KEEP_0__配置中使用。 defaultChannel in your Capacitor config instead.
  • 公共频道无法自行分配。
  • 如果一个频道被标记为 ,调用 public会返回错误。要使用公共频道,请调用 setChannel() 设备将自动切换到匹配的公共频道。 unsetChannel() 在应用程序启动时不要使用此方法设置频道。
  • 使用 listChannels() 来发现可用的频道以及它们是否允许自我赋值。
参数类型描述
optionsSetChannelOptions是否是 {@link} 设置频道选项}频道设置

返回: Promise<ChannelRes>

4.7.0


unsetChannel(options: UnsetChannelOptions) => Promise<void>

清除本地设备的插件管理的频道。这只清除本地存储的频道,不删除仪表板或公共__CAPGO_KEEP_0__设备覆盖记录。 setChannel()调用此方法后,正常频道顺序适用:存在仪表板或公共API设备覆盖记录仍然有效;否则设备可以回退到匹配公共/默认频道的条件(平台、设备类型、构建类型)。

After calling this method, normal channel precedence applies: an existing Dashboard or Public API Device Override still wins; otherwise the device can fall back to the matching public/default channel for its conditions (platform, device type, build type).

您想将设备移回默认更新轨道

  • 您想使用公共频道(由于公共频道无法自行分配通过
  • 参数 setChannel())
类型
optionsUnsetChannelOptions

getChannel() 4.7.0


getChannel() => Promise<GetChannelRes>

获取此设备的频道

返回: Promise<GetChannelRes>

自: 4.8.0


listChannels() => Promise<ListChannelsResult>

列出此设备可用的所有频道。返回与设备当前环境(平台、模拟器/真实设备、开发/生产构建)兼容的频道,并且是公共频道或允许自我赋值。

结果中的每个频道包括:

  • public如果 true,这是一个 默认频道.您不能使用自身分配给它 setChannel().如果您使用 unsetChannel(),则设备将自动从公共频道接收更新。
  • allow_self_set: 如果 true,这是一个 自分配频道.您可以使用 setChannel().

返回: Promise<ListChannelsResult>

7.5.0


setCustomId(options: SetCustomIdOptions) => Promise<void>

设置自定义设备 ID

参数类型描述
optionsSetCustomIdOptions是 {@link} SetCustomIdOptions} 自定义 ID

自从: 4.9.0


getBuiltinVersion() => Promise<BuiltinVersion>

获取本机应用程序版本或配置中设置的内置版本

返回值: Promise<BuiltinVersion>

自: 5.2.0


getDeviceId()

getDeviceId()部分
getDeviceId() => Promise<DeviceId>

获取设备的唯一 ID(用于自动更新服务器)

返回值: Promise<DeviceId>


getPluginVersion()

getPluginVersion()部分
getPluginVersion() => Promise<PluginVersion>

获取本地Capacitor Updater 插件版本(用于自动更新服务器)

返回值: Promise<PluginVersion>


isAutoUpdateEnabled()

isAutoUpdateEnabled()
isAutoUpdateEnabled() => Promise<AutoUpdateEnabled>

获取自动更新配置的状态。

返回: Promise<AutoUpdateEnabled>


removeAllListeners()

removeAllListeners()
removeAllListeners() => Promise<void>

addListener('download', …) 1.0.0


addListener('download', …)

addListener(‘download’, …)
addListener(eventName: 'download', listenerFunc: (state: DownloadEvent) => void) => Promise<PluginListenerHandle>

在 App 中监听包下载事件。触发一次下载开始、下载中和下载完成时。 此方法将返回下载百分比

参数类型
eventName’download’
listenerFunc(state: DownloadEvent) => void

返回值: Promise<PluginListenerHandle>

自: 2.0.11


addListener(‘noNeedUpdate’, …)

标题:addListener(‘noNeedUpdate’, …)
addListener(eventName: 'noNeedUpdate', listenerFunc: (state: NoNeedEvent) => void) => Promise<PluginListenerHandle>

监听不需要更新事件,适用于每次启动应用时强制检查

参数类型
eventName’noNeedUpdate’
listenerFunc(state: NoNeedEvent) => void

返回值: Promise<PluginListenerHandle>

自: 4.0.0


添加监听器(‘updateAvailable’,…)

标题:添加监听器(‘updateAvailable’,…)
addListener(eventName: 'updateAvailable', listenerFunc: (state: UpdateAvailableEvent) => void) => Promise<PluginListenerHandle>

监听可用更新事件,适用于每次启动应用程序都强制检查更新

参数类型
eventName’updateAvailable’
listenerFunc(state: UpdateAvailableEvent) => void

返回值: Promise<PluginListenerHandle>

自: 4.0.0


添加监听器(‘downloadComplete’,…)

标题:添加监听器(‘downloadComplete’,…)
addListener(eventName: 'downloadComplete', listenerFunc: (state: DownloadCompleteEvent) => void) => Promise<PluginListenerHandle>

监听下载完成事件。

参数类型
eventName’downloadComplete’
listenerFunc(state: DownloadCompleteEvent) => void

返回: Promise<PluginListenerHandle>

自: 4.0.0


addListener(‘majorAvailable’,…)

标题:addListener(‘majorAvailable’,…)
addListener(eventName: 'majorAvailable', listenerFunc: (state: MajorAvailableEvent) => void) => Promise<PluginListenerHandle>

在应用程序中监听重大更新事件,让您知道重大更新是否被禁用autoUpdateBreaking设置

参数类型
eventName’majorAvailable’
listenerFunc(state: MajorAvailableEvent) => void

返回值: Promise<PluginListenerHandle>

自: 2.3.0


addListener(‘updateFailed’,…)

标题:addListener(‘updateFailed’,…)
addListener(eventName: 'updateFailed', listenerFunc: (state: UpdateFailedEvent) => void) => Promise<PluginListenerHandle>

在 App 中监听更新失败事件,让你知道下次启动 App 时更新安装失败

参数类型
eventName’updateFailed’
listenerFunc(state: UpdateFailedEvent) => void

返回值: Promise<PluginListenerHandle>

自: 2.3.0


addListener(‘downloadFailed’,…)

标题:addListener(‘downloadFailed’,…)
addListener(eventName: 'downloadFailed', listenerFunc: (state: DownloadFailedEvent) => void) => Promise<PluginListenerHandle>

在 App 中监听下载失败事件,告诉你一个包下载失败了

参数类型
eventName’downloadFailed’
listenerFunc(state: DownloadFailedEvent) => void

返回值: Promise<PluginListenerHandle>

自: 4.0.0


addListener(‘appReloaded’,…)

标题:addListener(‘appReloaded’,…)
addListener(eventName: 'appReloaded', listenerFunc: () => void) => Promise<PluginListenerHandle>

在 App 中监听重载事件,告诉你重载已经发生

参数类型
eventName’appReloaded’
listenerFunc() => void

返回值: Promise<PluginListenerHandle>

自: 4.3.0


addListener(‘appReady’,…)

标题:addListener(‘appReady’,…)
addListener(eventName: 'appReady', listenerFunc: (state: AppReadyEvent) => void) => Promise<PluginListenerHandle>

在 App 中监听 app ready 事件,让你知道 app 已经准备好使用

参数类型
eventName’appReady’
listenerFunc(state: AppReadyEvent) => void

返回值: Promise<PluginListenerHandle>

自: 5.1.0


isAutoUpdateAvailable()

标题:isAutoUpdateAvailable()
isAutoUpdateAvailable() => Promise<AutoUpdateAvailable>

获取是否有自动更新可用(不受 serverUrl 禁用)。

返回: Promise<AutoUpdateAvailable>


getNextBundle() => Promise<BundleInfo | null>

获取下一次将在应用重载时使用的包。

如果没有下一个包,则返回 null。 Promise<BundleInfo | null>

返回: 6.8.0


setShakeMenu(options: SetShakeMenuOptions) => Promise<void>

启用或禁用shake菜单用于调试/测试目的

参数类型描述
optionsSetShakeMenuOptions包含启用或禁用的布尔值以启用或禁用shake菜单

自: 7.5.0


isShakeMenuEnabled()

标题:isShakeMenuEnabled()
isShakeMenuEnabled() => Promise<ShakeMenuEnabled>

获取shake菜单的当前状态

返回: Promise<ShakeMenuEnabled>

自: 7.5.0


接口

接口

应用就绪结果

应用就绪结果
属性类型
bundleBundleInfo

包信息

包信息
属性类型
idstring
versionstring
downloadedstring
checksumstring
statusBundleStatus

更新地址

更新地址
属性类型
urlstring

统计URL

统计URL
属性类型
urlstring

频道URL

频道URL
下载选项下载选项
urlstring

Section titled “DownloadOptions”

Section titled “ChannelUrl”

此 URL 和版本用于从服务器下载捆绑包, 如果您使用后端, 所有信息都将通过方法 getLatest 提供. 如果您不使用后端, 则需要提供捆绑包的 URL 和版本. 如果您使用 CLI 命令加密了捆绑包, 则需要 SessionKey, 您应该从命令的结果中接收它们.

属性类型描述默认值
urlstring捆绑包 zip 文件的 URL (例如: dist.zip) 用于下载. (这可以是任何 URL. 例如: Amazon S3, 一个 GitHub 标签, 或者您托管的任何其他捆绑包.)
versionstringThe version code/name of this bundle/version
sessionKeystring用于更新的会话密钥, 当捆绑包使用会话密钥加密时undefined4.0.0
checksumstring用于更新的校验和, 它应该是 sha256, 如果捆绑包加密, 则应该使用私钥加密undefined4.0.0
manifestManifestEntry[]Delta (manifest) 多文件下载的清单undefined6.1.0
属性类型
file_namestring | null
file_hashstring | null
download_urlstring | null
属性类型
idstring
属性类型
bundlesBundleInfo[]
属性类型描述默认值
rawboolean是否返回原始包列表或清单。若为真,列表将尝试读取内部数据库而非磁盘文件。false6.14.0
属性类型
toLastSuccessfulboolean

当前包结果

当前包结果
属性类型
bundleBundleInfo
nativestring

多延迟条件

多延迟条件
属性类型
delayConditionsDelayCondition[]

延迟条件

延迟条件
属性类型描述
kindDelayUntilNext设置延迟条件在 setMultiDelay 中
valuestring

最新版本

最新版本
属性类型描述
versionstringgetLatest 方法的结果4.0.0
checksumstring6
majorboolean
messagestring
sessionKeystring
errorstring
oldstring
urlstring
manifestManifestEntry[]6.1

获取最新选项

获取最新选项
属性类型描述默认
channelstring获取最新版本的渠道必须允许 '自行分配' 才能工作undefined6.8.0

渠道结果

渠道结果
属性类型描述
statusstring设置的渠道当前状态4.7.0
errorstring
messagestring
属性类型
channelstring
triggerAutoUpdateboolean
属性类型
triggerAutoUpdateboolean
属性类型描述自从
channelstring获取频道的当前状态4.8.0
errorstring
messagestring
statusstring
allowSetboolean

ListChannelsResult

频道信息结果
属性类型描述自从
channelsChannelInfo[]可用的频道列表7.5.0

ChannelInfo

频道信息
属性类型描述
idnumber数字频道 ID7.5.0
namestring频道名称7.5.0
publicboolean如果为真,这是默认/替代频道。设备无法自行将其分配到公共频道。相反,当设备使用 unsetChannel()移除其频道覆盖时(使用7.5.0
allow_self_setboolean),它将自动从匹配的公共频道接收更新。 setChannel()如果为真,设备可以使用7.5.0

明确将其分配到此频道。通常用于 beta 测试、A/B 测试或优惠升级跟踪。 name频道命令使用频道 id.

属性类型
customIdstring
属性类型
versionstring
属性类型
deviceIdstring

插件版本

插件版本
属性类型
versionstring

自动更新

属性
类型插件监听器句柄
enabledboolean

属性

类型
下载事件Section titled “AutoUpdateEnabled”
remove() => Promise<void>

Section titled “PluginListenerHandle”

下载事件
属性类型描述
percentnumber下载进度,范围为 0 到 100。4.0.0
bundleBundleInfo

无需事件

属性
类型描述protectedTokens
bundleBundleInfo下载进度,范围为 0 到 100。4.0.0

UpdateAvailableEvent

更新可用事件
PropType描述Since
bundleBundleInfo下载进度,范围为 0 到 100。4.0.0

DownloadCompleteEvent

下载完成事件
PropType描述
bundleBundleInfo当有新版本可用时触发。4.0.0

MajorAvailableEvent

标题:MajorAvailableEvent
属性类型描述
versionstring当有新主要捆绑包可用时触发。4.0.0
属性类型描述
bundleBundleInfo安装更新失败时触发。4.0.0

下载失败事件

下载失败事件
属性类型描述
versionstring下载失败时触发。4.0.0

AppReadyEvent

AppReadyEvent
属性类型描述
bundleBundleInfo当应用程序准备好使用时发出。5.2.0
statusstring

AutoUpdateAvailable

AutoUpdateAvailable
属性类型
availableboolean
属性类型
enabledboolean
属性类型
enabledboolean

pending:.Bundle正在等待被 设置 作为下一个捆绑包。 下载中:捆绑包正在下载中。 成功:捆绑包已下载并准备好

‘success’ | ‘error’ | ‘pending’ | ‘downloading’

‘background’ | ‘kill’ | ‘nativeVersion’ | ‘date’

延迟到下一个

标题:延迟到下一个

继续从功能和设置 标题:继续从功能和设置 to plan dashboard and API operations, connect it with Using @capgo/capacitor-updater 为使用@capgo/capacitor-updater的原生能力 API概述 为API概述的实现细节 介绍 为介绍的实现细节 API密钥 为API密钥的实现细节,以及 设备 为设备的实现细节