CAP 更新插件
协助本地应用程序更新的 Capacitor 插件 . 它支持获取应用程序更新信息 机器人 财务报告和审定财务报表 iOS系统 并支持 应用程序中更新 打开 机器人。 。 。 .
看看这个 电容Live 更新 在不向应用程序商店提交新版本的情况下, 远程实时更新您的应用程序的插件 。 @ @ info
特征
Capacitor App Update插件是Capacitor App最完整的本土应用更新解决方案之一. 以下是一些关键特征:
- 🖥️ 跨平台: 支持Android和iOS.
- 📱 App 更新信息:检索当前和可用的应用版本.
- ⚡ 即时应用更新:在Android上进行即时更新.
- 📲 灵活应用中的更新: 支持Android上灵活的更新流.
- 📈 更新优先级: 支持在Android上更新优先级.
- 🏪 App store 导航:打开应用商店条目进行手动更新.
- 📊 更新状态跟踪: 监视与听众的灵活更新进度.
- 🤝 兼容性: 与 实时更新 插件 .
- 🔁 最新数据:总是支持最新的Capacitor版本.
缺少一个功能? 刚刚 打开一个问题 我们看看!
使用大小写
App Update 插件通常用于确保用户运行您应用程序的最近版本,例如:
- 强制更新: 在Android上进行即时的应用更新,此时必须安装一个关键的新版本才能使用该应用.
- 可选更新提示:在Android上启动一个灵活的应用更新,在背景中下载,并跟踪其与状态变化收听器的进度.
- 版本检查:将当前应用版本与Play Store或App Store中可用的版本进行比较,以决定是否通知用户.
- 存储重定向:打开应用程序的"Play Store"或"App Store"条目,让用户可以手动更新应用程序,例如在iOS上无法提供应用程序内更新.
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 8.x.x (英语) | >=8.x.x | 积极支持 |
| 7.x.x (中文(简体) ) | 7.x.x (中文(简体) ) | 折旧 |
| 6.x.x (中文(简体) ) | 6.x.x (中文(简体) ) | 折旧 |
| 5.x.x (中文(简体) ) | 5.x.x (中文(简体) ) | 折旧 |
演示
这里有一个实例: robingenz/电容器-插管-demo
安装
你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:
npx skills add capawesome-team/skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-app-update` plugin in my project.
如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capawesome/capacitor-app-update
npx cap sync
Android 变量
如果需要, 您可以在您的应用程序中定义以下工程变量 variables.gradle 要更改依赖的默认版本的文件 :
$androidPlayAppUpdateVersion版本com.google.android.play:app-update(默认 :2.1.0(中文(简体) )$androidPlayServicesBaseVersion版本com.google.android.gms:play-services-base(默认 :18.9.0(中文(简体) )
如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .
配置
此插件不需要配置 .
使用量
以下例子显示如何获取应用更新信息,打开应用商店条目,并进行即时而灵活的应用更新.
获取应用程序更新信息
使用 getAppUpdateInfo() 以获取当前和可用的应用版本。 在Android上,版本由版本代码识别;在iOS上,由版本名称识别. 仅在Android和iOS上提供:
import { AppUpdate } from '@capawesome/capacitor-app-update';
import { Capacitor } from '@capacitor/core';
const getCurrentAppVersion = async () => {
const result = await AppUpdate.getAppUpdateInfo();
if (Capacitor.getPlatform() === 'android') {
return result.currentVersionCode;
} else {
return result.currentVersionName;
}
};
const getAvailableAppVersion = async () => {
const result = await AppUpdate.getAppUpdateInfo();
if (Capacitor.getPlatform() === 'android') {
return result.availableVersionCode;
} else {
return result.availableVersionName;
}
};
打开应用程序商店条目
在"Play Store"(Android)或"App Store"(iOS)中打开应用程序的页面,这样用户就可以手动更新应用程序. 仅在Android和iOS上提供:
import { AppUpdate } from '@capawesome/capacitor-app-update';
const openAppStore = async () => {
await AppUpdate.openAppStore();
};
立即进行更新
如果有更新,并允许立即更新,则立即进行应用更新。 仅在Android上可用:
import { AppUpdate, AppUpdateAvailability } from '@capawesome/capacitor-app-update';
const performImmediateUpdate = async () => {
const result = await AppUpdate.getAppUpdateInfo();
if (result.updateAvailability !== AppUpdateAvailability.UPDATE_AVAILABLE) {
return;
}
if (result.immediateUpdateAllowed) {
await AppUpdate.performImmediateUpdate();
}
};
开始灵活的更新
如果有更新可用,并允许灵活更新,则启动灵活的应用中更新。 您可以使用 onFlexibleUpdateStateChange 听着 仅在Android上可用:
import { AppUpdate, AppUpdateAvailability } from '@capawesome/capacitor-app-update';
const startFlexibleUpdate = async () => {
const result = await AppUpdate.getAppUpdateInfo();
if (result.updateAvailability !== AppUpdateAvailability.UPDATE_AVAILABLE) {
return;
}
if (result.flexibleUpdateAllowed) {
await AppUpdate.startFlexibleUpdate();
}
};
完成灵活更新
通过重新启动应用程序完成灵活的应用更新 。 仅在Android上可用:
import { AppUpdate } from '@capawesome/capacitor-app-update';
const completeFlexibleUpdate = async () => {
await AppUpdate.completeFlexibleUpdate();
};
API 密码
getAppUpdateInfo(...)openAppStore(...)performImmediateUpdate()startFlexibleUpdate()completeFlexibleUpdate()addListener('onFlexibleUpdateStateChange', ...)removeAllListeners()- 接口
- 数字
获取更新信息(...)
getAppUpdateInfo(options?: GetAppUpdateInfoOptions | undefined) => Promise<AppUpdateInfo>
返回应用更新信息 .
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
options | GetAppUpdateInfoOptions |
回返情况: Promise<AppUpdateInfo>
打开 AppStore (...)
openAppStore(options?: OpenAppStoreOptions | undefined) => Promise<void>
在Play Store(Android)或App Store(iOS)中打开应用程序的应用商店条目.
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
options | OpenAppStoreOptions |
自: 1.0.0 (单位:千美元)
执行即时更新( )
performImmediateUpdate() => Promise<AppUpdateResult>
进行即时的应用更新 .
只能从Android上找到.
回返情况: Promise<AppUpdateResult>
启动灵活更新日期( )
startFlexibleUpdate() => Promise<AppUpdateResult>
启动灵活的应用中更新.
只能从Android上找到.
回返情况: Promise<AppUpdateResult>
完整灵活更新日期( )
completeFlexibleUpdate() => Promise<void>
通过重新启动应用程序完成灵活的应用更新.
如果安装失败 返回的承诺会被拒绝, 例如,因为设备在存储上较低.
只能从Android上找到.
添加 listener("关于灵活更新状态变化",...)
addListener(eventName: 'onFlexibleUpdateStateChange', listenerFunc: (state: FlexibleUpdateState) => void) => Promise<PluginListenerHandle>
添加一个应用中的弹性更新状态更改倾听器.
只能从Android上找到.
| 参数 | 类型 |
|---|---|
eventName | 'onFlexibleUpdateStateChange' |
listenerFunc | (state: FlexibleUpdateState) => void |
回返情况: Promise<PluginListenerHandle>
删除所有收听器( )
removeAllListeners() => Promise<void>
删除此插件的所有听众 .
接口
更新信息
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
currentVersionName | string | 应用程序的当前版本名称 。 打开 机器人,这是 versionName 从 android/app/build.gradle 文档。 打开 iOS系统,这是 CFBundleShortVersionString 从 Info.plist 文档。 仅在Android和iOS上提供. | 5.1.0 国家 |
availableVersionName | string | 更新的现有版本名 。 打开 iOS系统,这是 CFBundleShortVersionString 从 Info.plist 文档。 仅在iOS上可用. | 5.1.0 国家 |
currentVersionCode | string | 目前应用的版本代码. 打开 机器人,这是 versionCode 从 android/app/build.gradle 文档。 打开 iOS系统,这是 CFBundleVersion 从 Info.plist 文档。 仅在Android和iOS上提供. | 5.1.0 国家 |
availableVersionCode | string | 更新版本的可用版本代码. 打开 机器人,这是 versionCode 从 android/app/build.gradle 文档。 只能从Android上找到. | 5.1.0 国家 |
availableVersionReleaseDate | string | 以ISO 8601(UTC)格式发布更新日期. 仅在iOS上可用. | |
updateAvailability | AppUpdateAvailability | 应用更新可用. 仅在Android和iOS上提供. | |
updatePriority | number | 应用中更新此更新的优先级,由开发者在Google Play开发者API中定义. 只能从Android上找到. | |
immediateUpdateAllowed | boolean | true 如果允许立即更新,否则 false. 只有Android可以访问. | |
flexibleUpdateAllowed | boolean | true 如果允许灵活更新,否则 false. 只有Android可以访问. | |
clientVersionStalenessDays | number | 用户设备上的Google Play Store应用得知了是否有更新或正在更新, 只能从Android上找到. | |
installStatus | FlexibleUpdateInstallStatus | 灵活的应用中更新安装状态 。 只能从Android上找到. | |
minimumOsVersion | string | 应用程序运行于iOS所需的最小操作系统版本. 仅在iOS上可用. |
获取更新信息选项
| Prop | 类型 | 说明 |
|---|---|---|
country | string | 您想要搜索的商店的双字母国家代码 。 见 http://en.wikipedia.org/wiki/ISO 3166-1 alpha-2 (英语) 用于列出ISO国家代码。 仅在iOS上可用. |
OpenAppStore 选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
androidPackageName | string | 在 Play Store 中打开的软件包名 。 打开 机器人,这是您的应用程序的应用程序ID(例如. com.example.app) (中文(简体) ). 您可以在 android/app/build.gradle 文档。 如果没有提供,则会使用当前app的软件包名. 只能从Android上找到. | 7.2.0 联合国 |
androidStorePackageName | string | 商店应用程序的软件包名称应该打开应用程序商店条目(例如. com.android.vending 用于谷歌游戏商店). 如果未提供,则系统默认处理器用于 market:// 链接将被使用。 只能从Android上找到. | 8.1.0 联合国 |
appId | string | 在 App Store 打开的应用程序的应用ID 。 打开 iOS系统,这是您的应用程序的苹果标识(例如. 123456789) (中文(简体) ). 您可以在您的应用商店条目的URL中找到ID( 如. https://apps.apple.com/app/id123456789) (中文(简体) ). 请注意: iOS上需要这个选项. 仅在iOS上可用. | 6.1.0 (中文(简体) ) |
更新结果
| Prop | 类型 |
|---|---|
code | AppUpdateResultCode |
插件听筒
| Prop | 类型 |
|---|---|
remove | () => Promise<void> |
灵活更新状态
| Prop | 类型 | 说明 |
|---|---|---|
installStatus | FlexibleUpdateInstallStatus | 灵活的应用中更新安装状态 . |
bytesDownloaded | number | 返回迄今为止下载的字节数 . undefined 如果安装状态不是 DOWNLOADING。 。 。 . |
totalBytesToDownload | number | 返回此更新要下载的字节总数 . undefined 如果安装状态不是 DOWNLOADING。 。 。 . |
数字
更新可用性
| 成员 | 数值 |
|---|---|
UNKNOWN | 0 |
UPDATE_NOT_AVAILABLE | 1 |
UPDATE_AVAILABLE | 2 |
UPDATE_IN_PROGRESS | 3 |
灵活更新安装状态
| 成员 | 数值 |
|---|---|
UNKNOWN | 0 |
PENDING | 1 |
DOWNLOADING | 2 |
INSTALLING | 3 |
INSTALLED | 4 |
FAILED | 5 |
CANCELED | 6 |
DOWNLOADED | 11 |
更新结果代码
| 成员 | 数值 | 说明 |
|---|---|---|
OK | 0 | 用户已接受更新. |
CANCELED | 1 | 用户已否认或取消更新 . |
FAILED | 2 | 其他一些错误使用户无法表示同意或进行更新. |
NOT_AVAILABLE | 3 | 没有更新. |
NOT_ALLOWED | 4 | 不允许更新类型 . |
INFO_MISSING | 5 | App更新信息缺失. 你必须打电话 getAppUpdateInfo() 在请求更新之前. |
内部应用共享测试
Android 开发者的文档描述如何测试 应用程序中更新 使用 内部应用程序共享。 。 。 .
财务问题
此插件与 Live 更新插件有何不同 ?
App Update插件协助通过 Play Store 或 App Store 分发的本地应用更新,例如通过检索更新信息或执行Android的应用更新. 这个 电容Live 更新 另一方面,插件在不向应用程序商店提交新版本的情况下,将您的应用程序远程实时更新.
IOS上是否有应用程序更新?
不,内应用更新是Google Play Store的一个功能,因此只在Android上提供. 在iOS上,您可以使用 getAppUpdateInfo(...) 以检查是否有更新,然后调用 openAppStore(...) 打开应用程序的 App Store 条目,以便用户手动更新.
立即更新与灵活更新有何区别?
立即进行更新,步骤如下: performImmediateUpdate()。以 startFlexibleUpdate()中,可以对下载进度进行监测 onFlexibleUpdateStateChange 收听者,通过呼叫完成 completeFlexibleUpdate(),它重新启动了应用程序。 两种更新类型仅在Android上提供.
INFO MISSING结果代码更新为何失败??
这个 INFO_MISSING 结果代码表示应用程序更新信息缺失. 你必须打电话 getAppUpdateInfo(...) 在请求更新之前 performImmediateUpdate() 或者说 startFlexibleUpdate()。 。 。 .
我怎么测试Android的应用更新?
Android开发者文档描述了如何使用内部应用共享来测试应用中的更新. 见 内部应用共享测试 节,用于相关链接.
我能用这个插件吗? 有Ionic、React、Vue或Angular?
是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.
相关插件
- 应用程序审查:让用户提交应用商店评论和评分.
- 谷歌游戏服务:检查设备上是否有Google Play服务,并提示用户安装或更新.
- 实时更新: 实时更新你的应用程序,而不要求用户从应用程序商店下载新版本.
通讯
随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .
贷项
此插件基于 CAP 更新 插件 . 感谢所有为这个项目捐款的人!