@capawesome/cordova-live-update

中文文档
0.1.1发布于 2026/11/12MITTypeScriptCommonJS零依赖构建来源已验证近 30 天下载 3170

Cordova 插件可以实时远程更新您的应用程序 .

中文使用文档
文档目录47 节
  1. 特征
  2. 通讯
  3. 兼容性
  4. 网络视频兼容性
  5. 电离-网络视图
  6. 指南
  7. 安装
  8. 机器人
  9. iOS系统
  10. 插件变量
  11. 示例
  12. 演示
  13. 使用量
  14. API 密码
  15. 清除锁定的 Bundles ()
  16. 删除Bundle(...)
  17. 下载Bundle(...)
  18. 获取频道(...)
  19. 获取 LatestBundle (...)
  20. 获取被锁的邦德莱斯( )
  21. 获取 Bundles( )
  22. 获取频道( C)
  23. 获取Config ()
  24. 获得下载 Bundles( )
  25. 获取当前Bundle ()
  26. 获取 CustomId ()
  27. 获取DeviceId ()
  28. 正在同步 ()
  29. 获取 NextBundle ()
  30. 获取VersionCode ()
  31. 获取VersionName ()
  32. 准备中( )
  33. 重新装入( c)
  34. 重设( c)
  35. 重新设置Config ()
  36. 设置频道(...)
  37. 设置 Config (...)
  38. 设置 CustomId (...)
  39. 设置下一步Bundle(...)
  40. 同步(...)
  41. 添加收听器( “ 下载缓冲进度 ” ,...)
  42. 添加倾听器( 下一个BundleSet, ...)
  43. 删除所有收听器( )
  44. 接口
  45. 类型异名
  46. 更改日志
  47. 许可证

Cordova 现场更新插件

Cordova插件允许您在不要求用户从应用商店下载新版本的情况下,远程实时更新您的应用,也称为Over-the-Air(OTA)更新.

特征

  • ++ 支持 Android 和 iOS 软件
  • 与 库克多瓦网络视频 -对 没有 需求 cordova-plugin-ionic-webview
  • 📦 套装管理 ——下载、设置和删除捆绑
  • ☁️ 云支持 ——通过 云雾
  • 📺 频道支持 ——为应用程序设置管理不同版本的频道
  • 🔄 自动更新 - 15分钟节流阀的背景更新战略
  • 🛟 回滚 ——在失败的更新中自动返回默认捆绑
  • 🔁 Delta 更新 — 显示模式下载只更改文件
  • ⚙️ 运行时配置 ——运行时更新插件配置
  • 📡 更新生命周期事件 ——跟踪下载进度,对捆绑变化作出反应,检测再装入
  • 🏷️ 自定义属性 – 通过 Capwesome Cloud 连接自定义密钥值元数据与捆绑
  • 🔒 警卫 ——通过RSA签名验证捆绑物的真实性和完整性
  • 🌐 开源 麻省理工学院获得执照

通讯

随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .

兼容性

插件版本Cordova Android 版本软件Cordova iOS 版本状态
0.1.x (中文(简体) )>=13.0.0页:1积极支持

网络视频兼容性

此插件将服务的文件互换到WebView, 将它连接到 Cordova 的官方插件扩展点(CordovaPluginPathHandler 在安卓上, CDVPluginSchemeHandler (原始内容存档于2018-09-28). On iOS. 这些钩子只有在WebView通过自定义方案加载内容时才会起火,即: 默认 为现代科多瓦语:

  • 机器人 (cordova-android ~10):载荷来自 https://localhost/ 通过 WebViewAssetLoader。 。 。 .
  • iOS系统 (cordova-ios 7):载荷来自 app://localhost/ 通过 WKURLSchemeHandler。 。 。 .

插件确实如此 没有 如果您的应用程序强制 WebView 返回到遗产中 file:// 计划,例如:

  • <preference name="AndroidInsecureFileModeEnabled" value="true" />
  • <preference name="Scheme" value="file" />

电离-网络视图

cordova-plugin-ionic-webview 实值 不兼容 使用此插件。 它用自己的本地服务器取代了WebView,它直接服务内容,从不调用上面的扩展点,所以被下载的捆绑被默默地忽略了—— sync() 财务报告和审定财务报表 reload() 似乎成功, 但 WebView 继续显示应用二进制中运出的内容 。 这影响到了Android和iOS.

如果你的应用程序使用 cordova-plugin-ionic-webview,删除:

cordova plugin remove cordova-plugin-ionic-webview

它不再被维护,也不再需要:现代Cordova通过iOS上的WKWebView和Android上的系统WebView服务于WebView,其自定义-cheme行为与这个插件所依赖的相同.

指南

安装

通过运行以下命令来安装插件,并遵循下面特定平台的指示:

cordova plugin add @capawesome/cordova-live-update --variable APP_ID=<your-app-id>

机器人

频道

对a 静态 默认频道,使用 DEFAULT_CHANNEL 插件变量——不需要本地配置 .

使用时 版本频道,频道值需要从建筑中插出 versionCode,不能通过插件变量表达。 用克多瓦语 build-extras.gradle 改为机制。 在你的应用 config.xml,添加:

<platform name="android">
    <resource-file src="build-extras.gradle" target="app/build-extras.gradle"/>
</platform>

然后创建 build-extras.gradle 旁边 config.xml数字 :

android {
    applicationVariants.all { variant ->
        variant.resValue "string", "capawesome_live_update_default_channel", "production-${variant.versionCode}"
    }
}

iOS系统

频道

对a 静态 默认频道,使用 DEFAULT_CHANNEL 插件变量——不需要本地配置 .

使用时 版本频道时,使用 Cordova 的 <config-file> 应用程序中的机制 config.xml数字 :

<platform name="ios">
    <config-file target="*-Info.plist" parent="CapawesomeLiveUpdateDefaultChannel">
        <string>production-$(CURRENT_PROJECT_VERSION)</string>
    </config-file>
</platform>

Xcode 解析 $(CURRENT_PROJECT_VERSION) 在建设时间.

隐私表

从开始 索多瓦-欧斯 7.1.0,iOS系统 隐私宣言 通过一个 <privacy-manifest> 元素在 <platform name="ios"> 你应用的一节 config.xml添加一个 NSPrivacyAccessedAPICategoryUserDefaults 此插件的条目 :

<platform name="ios">
    <privacy-manifest>
        <key>NSPrivacyAccessedAPITypes</key>
        <array>
            <!-- Add this dict entry to the array if the key already exists. -->
            <dict>
                <key>NSPrivacyAccessedAPIType</key>
                <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
                <key>NSPrivacyAccessedAPITypeReasons</key>
                <array>
                    <string>CA92.1</string>
                </array>
            </dict>
        </array>
    </privacy-manifest>
</platform>

我们建议宣布 CA92.1 作为获得《公约》 UserDefaults API (英语).

插件变量

这些到克多瓦的地图 <preference> 输入 config.xml。设置为安装时间 --variable,或编辑 config.xml 直接 :

变量默认说明
APP_ID(空虚)Capawesome Cloud app ID(一个UUID).
DEFAULT_CHANNEL(空虚)默认频道名称 。 被本地的配置所取代或 setChannel()。 。 。 .
AUTO_UPDATE_STRATEGYnonenone 或者说 background。 。 。 . background 运行 sync() 寒冷的起步和前地(15分钟的节流阀).
HTTP_TIMEOUT60000HTTP 请求以毫秒计的超时 .
PUBLIC_KEY(空虚)PEM-编码的RSA公钥用于签名验证. 设定时,所有捆绑下载必须包含有效的签名.
READY_TIMEOUT0等待的秒数 ready() 在自动回滚之前。 设为等. 10000 以启用回滚. 0 关闭它.
SERVER_DOMAINapi.cloud.capawesome.io卡帕韦斯克云 API 主机(无方案/路径).
AUTO_DELETE_BUNDLESfalse是否删除未使用的捆绑 ready() 名为.
AUTO_BLOCK_ROLLED_BACK_BUNDLESfalse是否要挡住引起回滚的捆绑. 如果 READY_TIMEOUT=0。 。 。 .

示例

<plugin name="@capawesome/cordova-live-update" spec="0.1.0">
  <variable name="APP_ID" value="6e351b4f-69a7-415e-a057-4567df7ffe94" />
  <variable name="AUTO_UPDATE_STRATEGY" value="background" />
  <variable name="DEFAULT_CHANNEL" value="production" />
  <variable name="READY_TIMEOUT" value="10000" />
  <variable name="PUBLIC_KEY" value="-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDodf1SD0OOn6hIlDuKBza0Ed0OqtwyVJwiyjmE9BJaZ7y8ZUfcF+SKmd0l2cDPM45XIg2tAFux5n29uoKyHwSt+6tCi5CJA5Z1/1eZruRRqABLonV77KS3HUtvOgqRLDnKSV89dYZkM++NwmzOPgIF422mvc+VukcVOBfc8/AHQIDAQAB-----END PUBLIC KEY-----" />
</plugin>

演示

这里有一个实例: capawesome-team/cordova-live-update-demo 互联网档案馆的存檔,存档日期2013-12-02

机器人iOS系统
Android DemoiOS Demo

使用量

插件附着到 cordova.plugins.LiveUpdate 一次 deviceready 火灾.

如果您使用 TypeScript, 类型定义可以从 npm 包中获取 :

import type { LiveUpdatePlugin } from '@capawesome/cordova-live-update';

declare const cordova: { plugins: { LiveUpdate: LiveUpdatePlugin } };
const { LiveUpdate } = cordova.plugins;

const deleteBundle = async () => {
  await LiveUpdate.deleteBundle({ bundleId: 'my-bundle' });
};

const downloadBundle = async () => {
  await LiveUpdate.downloadBundle({ url: 'https://example.com/1.0.0.zip', bundleId: '1.0.0' });
};

const fetchChannels = async () => {
  const result = await LiveUpdate.fetchChannels();
  return result.channels;
};

const fetchLatestBundle = async () => {
  await LiveUpdate.fetchLatestBundle();
};

const getBundles = async () => {
  const result = await LiveUpdate.getBundles();
  return result.bundleIds;
};

const getChannel = async () => {
  const result = await LiveUpdate.getChannel();
  return result.channel;
};

const getCurrentBundle = async () => {
  const result = await LiveUpdate.getCurrentBundle();
  return result.bundleId;
};

const getCustomId = async () => {
  const result = await LiveUpdate.getCustomId();
  return result.customId;
};

const getDeviceId = async () => {
  const result = await LiveUpdate.getDeviceId();
  return result.deviceId;
};

const getNextBundle = async () => {
  const result = await LiveUpdate.getNextBundle();
  return result.bundleId;
};

const getVersionCode = async () => {
  const result = await LiveUpdate.getVersionCode();
  return result.versionCode;
};

const getVersionName = async () => {
  const result = await LiveUpdate.getVersionName();
  return result.versionName;
};

const ready = async () => {
  const result = await LiveUpdate.ready();
  if (result.currentBundleId) {
    console.log(`The app is now using the bundle with the identifier ${result.currentBundleId}.`);
  }
  if (result.previousBundleId) {
    console.log(`The app was using the bundle with the identifier ${result.previousBundleId}.`);
  }
  if (result.rollback) {
    console.log('The app was reset to the default bundle.');
  }
};

const reload = async () => {
  await LiveUpdate.reload();
};

const reset = async () => {
  await LiveUpdate.reset();
};

const setChannel = async () => {
  await LiveUpdate.setChannel({ channel: 'production-5' });
};

const setCustomId = async () => {
  await LiveUpdate.setCustomId({ customId: 'my-custom-id' });
};

const setNextBundle = async () => {
  await LiveUpdate.setNextBundle({ bundleId: '7f0b9bf2-dff6-4be2-bcac-b068cc5ea756' });
};

const sync = async () => {
  const result = await LiveUpdate.sync({
    channel: 'production-5',
  });
  return result.nextBundleId;
};

const isNewBundleAvailable = async () => {
  const { bundleId: latestBundleId } = await LiveUpdate.fetchLatestBundle({
    channel: 'production-5',
  });
  if (latestBundleId) {
    const { bundleId: currentBundleId } = await LiveUpdate.getCurrentBundle();
    return latestBundleId !== currentBundleId;
  } else {
    return false;
  }
};

API 密码

清除锁定的 Bundles ()

clearBlockedBundles() => any

从被封锁列表中清除所有被封锁的捆绑 .

这将删除所有自动被封存的捆绑标识符 由于回滚 autoBlockRolledBackBundles 已启用.

回返情况: any

自: 0.1.0 (中文(简体) )


删除Bundle(...)

deleteBundle(options: DeleteBundleOptions) => any

从应用程序中删除捆绑 .

参数类型
optionsDeleteBundleOptions

回返情况: any

自: 0.1.0 (中文(简体) )


下载Bundle(...)

downloadBundle(options: DownloadBundleOptions) => any

下载一捆.

参数类型
optionsDownloadBundleOptions

回返情况: any

自: 0.1.0 (中文(简体) )


获取频道(...)

fetchChannels(options?: FetchChannelsOptions | undefined) => any

获取频道从 云雾。 。 。 .

这主要是为了发展和质量保证的目的. 它允许您获取可用的频道列表,以便您 使用它们之间的动态切换 setChannel(...)。 。 。 .

请注意: 只为公共频道启用的应用程序工作. 如果频道是私有的,仍然可以使用 setChannel(...) 但不会被这个方法返回.

参数类型
optionsFetchChannelsOptions

回返情况: any

自: 0.1.0 (中文(简体) )


获取 LatestBundle (...)

fetchLatestBundle(options?: FetchLatestBundleOptions | undefined) => any

使用 云雾。 。 。 .

参数类型
optionsFetchLatestBundleOptions

回返情况: any

自: 0.1.0 (中文(简体) )


获取被锁的邦德莱斯( )

getBlockedBundles() => any

获取所有被封锁的捆绑标识符 .

返回自动被屏蔽的捆绑标识符列表 由于回滚 autoBlockRolledBackBundles 已启用.

回返情况: any

自: 0.1.0 (中文(简体) )


获取 Bundles( )

getBundles() => any

获取所有已下载的捆绑标识符 .

回返情况: any

自: 0.1.0 (中文(简体) )


获取频道( C)

getChannel() => any

获取用于更新的频道 .

频道按以下顺序解决(最优先先解决): 1

  1. setChannel() (Android上的共享首选 / iOS上的用户默认)
  2. 本地配置( N)CapawesomeLiveUpdateDefaultChannel 内 Info.plist 在iOS上或 capawesome_live_update_default_channel 内 strings.xml (Android号)
  3. 这个 DEFAULT_CHANNEL 首选项 config.xml

说明编号: channel 参数 sync() 拥有最高优先级 但并没有坚持下去,因此没有用这种方法返回.

回返情况: any

自: 0.1.0 (中文(简体) )


获取Config ()

getConfig() => any

获取运行时间配置 .

返回包括任何运行时间在内的当前插件配置 通过 setConfig()。 。 。 .

回返情况: any

自: 0.1.0 (中文(简体) )


获得下载 Bundles( )

getDownloadedBundles() => any

获取所有已下载的捆绑标识符 .

回返情况: any

自: 0.1.0 (中文(简体) )


获取当前Bundle ()

getCurrentBundle() => any

获取当前捆绑的捆绑标识符 . 当前捆绑是应用程序目前使用的捆绑.

回返情况: any

自: 0.1.0 (中文(简体) )


获取 CustomId ()

getCustomId() => any

获取设备的自定义标识符 .

回返情况: any

自: 0.1.0 (中文(简体) )


获取DeviceId ()

getDeviceId() => any

获取唯一设备标识符 .

回返情况: any

自: 0.1.0 (中文(简体) )


正在同步 ()

isSyncing() => any

检查同步操作是否正在进行中 .

回返情况: any

自: 0.1.0 (中文(简体) )


获取 NextBundle ()

getNextBundle() => any

获取下一捆的捆绑标识符 . 下一个捆绑是调用后使用的捆绑 reload() 或重新启动应用程序.

回返情况: any

自: 0.1.0 (中文(简体) )


获取VersionCode ()

getVersionCode() => any

获取应用程序的版本代码.

打开 机器人,这是 versionCode 从 PackageInfo。 。 。 . 打开 iOS系统,这是 CFBundleVersion 从 Info.plist 文档.

回返情况: any

自: 0.1.0 (中文(简体) )


获取VersionName ()

getVersionName() => any

获取应用程序的版本名 .

打开 机器人,这是 versionName 从 PackageInfo。 。 。 . 打开 iOS系统,这是 CFBundleShortVersionString 从 Info.plist 文档.

回返情况: any

自: 0.1.0 (中文(简体) )


准备中( )

ready() => any

通知应用程序已准备好使用的插件, 不需要回滚 .

请注意: 当应用程序准备好使用时, 此方法应该立即调用 防止应用程序被重置到默认捆绑中.

回返情况: any

自: 0.1.0 (中文(简体) )


重新装入( c)

reload() => any

重新装入应用新捆绑的应用程序 .

回返情况: any

自: 0.1.0 (中文(简体) )


重设( c)

reset() => any

将应用程序重置为默认捆绑 .

打电话 reload() 或重新启动应用更改的应用程序.

回返情况: any

自: 0.1.0 (中文(简体) )


重新设置Config ()

resetConfig() => any

将运行时配置重置为从 config.xml。 。 。 .

这将清除任何运行时配置设置通过 setConfig()。 。 。 . 变化立即生效.

回返情况: any

自: 0.1.0 (中文(简体) )


设置频道(...)

setChannel(options: SetChannelOptions) => any

设置用于更新的频道 .

参数类型
optionsSetChannelOptions

回返情况: any

自: 0.1.0 (中文(简体) )


设置 Config (...)

setConfig(options: SetConfigOptions) => any

设置运行时间配置 .

这样可以在运行时更新插件配置选项 . 这些变化在应用程序重启后一直持续,并立即生效.

重要内容: 运行时配置自动重置为默认值 当本地应用程序更新到新版本时。 这确保 之前版本的配置在应用程序更新后不会持续.

参数类型
optionsSetConfigOptions

回返情况: any

自: 0.1.0 (中文(简体) )


设置 CustomId (...)

setCustomId(options: SetCustomIdOptions) => any

设置设备的自定义标识符 .

参数类型
optionsSetCustomIdOptions

回返情况: any

自: 0.1.0 (中文(简体) )


设置下一步Bundle(...)

setNextBundle(options: SetNextBundleOptions) => any

设定用于应用程序的下一个捆绑 .

打电话 reload() 或重新启动应用更改的应用程序.

参数类型
optionsSetNextBundleOptions

回返情况: any

自: 0.1.0 (中文(简体) )


同步(...)

sync(options?: SyncOptions | undefined) => any

自动下载并设定应用程序的最新捆绑 云雾。 。 。 .

打电话 reload() 或重新启动应用更改的应用程序.

参数类型
optionsSyncOptions

回返情况: any

自: 0.1.0 (中文(简体) )


添加收听器( “ 下载缓冲进度 ” ,...)

addListener(eventName: 'downloadBundleProgress', listenerFunc: DownloadBundleProgressListener) => any

听一个捆绑的下载进度.

参数类型
eventName'downloadBundleProgress'
listenerFuncDownloadBundleProgressListener

回返情况: any

自: 0.1.0 (中文(简体) )


添加倾听器( 下一个BundleSet, ...)

addListener(eventName: 'nextBundleSet', listenerFunc: NextBundleSetListener) => any

听好了,当一个捆绑被设定为下一个捆绑时.

当下个应用程序重新启动时使用捆绑时,此事件会被触发, 通过自动更新或人工呼叫 setNextBundle()。 。 。 .

参数类型
eventName'nextBundleSet'
listenerFuncNextBundleSetListener

回返情况: any

自: 0.1.0 (中文(简体) )


删除所有收听器( )

removeAllListeners() => any

删除此插件的所有听众 .

回返情况: any

自: 0.1.0 (中文(简体) )


接口

删除边框选项

Prop类型说明自兹
bundleIdstring要删除的捆绑的唯一标识符 .0.1.0 (中文(简体) )

下载边框选项

Prop类型说明默认自兹
artifactType'manifest' | 'zip'包裹的文物类型.'zip'0.1.0 (中文(简体) )
bundleIdstring捆绑的独特标识符 . 请注意: 数值 public ,不能用作捆绑标识符.0.1.0 (中文(简体) )
checksumstring自动托管捆绑作为HA-256散列以Hex格式进行核对,以验证捆绑的完整性. 请注意: 仅支持 zip 文物类型.0.1.0 (中文(简体) )
signaturestring自行托管捆绑的签名,作为Base64格式的签名SHA-256散列来验证捆绑的完整性. 请注意: 仅支持 zip 文物类型.0.1.0 (中文(简体) )
urlstring要下载的捆绑的 URL 。 给 zip 文物类型, URL 必须指向 ZIP 文件 。 给 manifest 文物类型,URL作为下载单个文件的基础URL. 例如,如果 URL 是 https://example.com/download中,插件将使用href下载文件 index.html 从 https://example.com/download?href=index.html改为: 验证完整性 文件,服务器应当返回 a X-Checksum 以十六进制格式使用 SHA-256 散列头. 改为: 验证签名 文件,服务器应当返回 a X-Signature 以 Base64 格式标注的 SHA-256 散列.0.1.0 (中文(简体) )

获取频道选项

Prop类型说明默认自兹
limitnumber返回的最大频道数 .500.1.0 (中文(简体) )
offsetnumber要跳过的频道数 .00.1.0 (中文(简体) )
querystring按名称过滤频道的查询 .0.1.0 (中文(简体) )

获取频道结果

Prop类型说明自兹
channels{}频道列表.0.1.0 (中文(简体) )

频道

Prop类型说明自兹
idstring频道独有的标识符.0.1.0 (中文(简体) )
namestring频道名称.0.1.0 (中文(简体) )

获取 LastBundle 选项

Prop类型说明自兹
channelstring获取最新捆绑的频道名称 .0.1.0 (中文(简体) )

获取 LatestBundle 成果

Prop类型说明自兹
artifactType'manifest' | 'zip'包裹的文物类型.0.1.0 (中文(简体) )
bundleIdstring | null最新捆绑的唯一标识符 。 在"Capawesome Cloud"上,这是应用程序构建文物的ID. 若为 null,没有捆绑.0.1.0 (中文(简体) )
checksumstring如果捆绑是自行托管的, 最新的捆绑的校验和 。 如果捆绑在 Capawesome Cloud 上被托管,在下载捆绑时会将校验和作为响应头返回.0.1.0 (中文(简体) )
customProperties{ [key: string]: string; }自定义与最新捆绑相关的属性 .0.1.0 (中文(简体) )
downloadUrlstring要下载的最新捆绑的 URL 。 将此 URL 传给 downloadBundle(...) 下载捆绑的方法.0.1.0 (中文(简体) )
signaturestring如果捆绑是自行托管的, 则签名为最新的捆绑 。 如果捆绑被托管在 Capawesome Cloud上,在下载捆绑时,签名将作为响应头返回.0.1.0 (中文(简体) )

打开Blockbundles 后台

Prop类型说明自兹
bundleIds{}所有被屏蔽的捆绑的一组独特的标识符.0.1.0 (中文(简体) )

获取邦德莱斯结果

Prop类型说明自兹
bundleIds{}一组所有可用捆绑的独特标识符 .0.1.0 (中文(简体) )

获取频道结果

Prop类型说明自兹
channelstring | null频道名. 若为 null,该应用程序正在使用默认通道.0.1.0 (中文(简体) )

获取压缩结果

Prop类型说明自兹
appIdstring | null用于识别应用程序的应用ID. 若为 null,没有配置应用程序ID.0.1.0 (中文(简体) )
autoUpdateStrategy'none' | 'background'实时更新的自动更新策略.0.1.0 (中文(简体) )

下载Bundles Result 中

Prop类型说明自兹
bundleIds{}所有已下载捆绑的一组独特的标识符 .0.1.0 (中文(简体) )

获取当前缓冲

Prop类型说明自兹
bundleIdstring | null当前捆绑的独特标识符 。 若为 null,正在使用默认捆绑.0.1.0 (中文(简体) )

获取 CustomId 结果

Prop类型说明自兹
customIdstring | null设备的自定义标识符 。 若为 null,没有设置自定义标识符.0.1.0 (中文(简体) )

获取DeviceId 成果

Prop类型说明自兹
deviceIdstring设备的独特标识符 。 在iOS上, identifierForVendor 已使用。 此属性的价值对于来自同一供应商运行于同一设备的应用程序是相同的.0.1.0 (中文(简体) )

正在同步结果

Prop类型说明自兹
syncingboolean同步操作是否正在进行中 .0.1.0 (中文(简体) )

获取旁边的废墟

Prop类型说明自兹
bundleIdstring | null下一个捆绑的唯一标识符 。 若为 null,正在使用默认捆绑.0.1.0 (中文(简体) )

获取VersionCode结果

Prop类型说明自兹
versionCodestring应用程序的版本代码. 打开 机器人,这是 versionCode 从 PackageInfo打开 iOS系统,这是 CFBundleVersion 从 Info.plist 文档.0.1.0 (中文(简体) )

获取版本Name

Prop类型说明自兹
versionNamestring应用的版本名. 打开 机器人,这是 versionName 从 PackageInfo打开 iOS系统,这是 CFBundleShortVersionString 从 Info.plist 文档.0.1.0 (中文(简体) )

准备完毕

Prop类型说明自兹
previousBundleIdstring | null使用的上次捆绑的标识符 。 若为 null,使用了默认捆绑.0.1.0 (中文(简体) )
currentBundleIdstring | null所使用的当前捆绑的标识符 。 若为 null,正在使用默认捆绑.0.1.0 (中文(简体) )
rollbackboolean该应用程序是否被重置为默认捆绑 .0.1.0 (中文(简体) )

设置频道选项

Prop类型说明自兹
channelstring | null频道名. 设定 null 删除频道.0.1.0 (中文(简体) )

设置配置选项

Prop类型说明自兹
appIdstring | null用于识别应用程序的应用ID. 设定 null 重置为从 APP_ID 首选项 config.xml。 。 。 .0.1.0 (中文(简体) )

设置自定义Id 选项

Prop类型说明自兹
customIdstring | null设备的自定义标识符 。 设定 null 删除自定义标识符.0.1.0 (中文(简体) )

设置下一个选项

Prop类型说明自兹
bundleIdstring | null要使用的捆绑的唯一标识符 。 设定 null 以使用默认捆绑( 和调用相同) reset()) (中文(简体) ).0.1.0 (中文(简体) )

同步选项

Prop类型说明自兹
channelstring获取最新捆绑的频道名称 .0.1.0 (中文(简体) )

同步结果

Prop类型说明自兹
nextBundleIdstring | null下一个捆绑的标识符 。 若为 null,该应用程序是最新的,没有新的捆绑.0.1.0 (中文(简体) )

下载缓冲进程

当捆绑更改的下载进度时触发的事件 .

Prop类型说明自兹
bundleIdstring正在下载的捆绑的唯一标识符 .0.1.0 (中文(简体) )
downloadedBytesnumber已下载的字节数 .0.1.0 (中文(简体) )
progressnumber下载进度( 以百分比计) 值 0 财务报告和审定财务报表 1。 。 。 .0.1.0 (中文(简体) )
totalBytesnumber要下载的字节总数 .0.1.0 (中文(简体) )

插件听筒

处理从 addListener(...)调用 remove() 拆卸 听着.

Prop类型
remove() => any

下一个BundleSet Event

当捆绑被设定为下一个捆绑时触发的事件 .

Prop类型说明自兹
bundleIdstring | null将捆绑设定为下捆绑的唯一标识符 。 若为 null,将使用默认捆绑.0.1.0 (中文(简体) )

类型异名

下载缓冲进程倾听器

一个捆绑的下载进度的监听器 .

(event: DownloadBundleProgressEvent): void

下一个BundleSet收听器

当一个捆绑被设定为下一个捆绑时的监听者.

(event: NextBundleSetEvent): void

更改日志

见 变动情况。 。 。 .

许可证

见 自由主义。 。 。 .

版本与发布记录

@capawesome/cordova-live-update 共发布 3 个版本,首次发布于 2026/06/02;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.1latest2026/11/12今天
0.1.0-dev.321907.1781520437dev2026/06/154 个月前
0.1.02026/06/025 个月前

关于 @capawesome/cordova-live-update 的常见问题

@capawesome/cordova-live-update 是什么?

Cordova 插件可以实时远程更新您的应用程序 .

如何安装 @capawesome/cordova-live-update?

在项目目录运行 npm install @capawesome/cordova-live-update,或使用 pnpm add / yarn add / bun add。

@capawesome/cordova-live-update 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capawesome/cordova-live-update 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@capawesome/cordova-live-update 可以商用吗?

@capawesome/cordova-live-update 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@capawesome/cordova-live-update 的下载量有多少?

根据 npm 官方下载统计,@capawesome/cordova-live-update 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,170 次,日均约 106 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capawesome/cordova-live-update 还在维护吗?

最新版本 0.1.1 发布于 2026/11/12(今天);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/06/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。