1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import update from '@ohos.update'; 17 18/** 19 * 升级状态 20 * 21 * @since 2022-06-05 22 */ 23export enum UpdateState { 24 /** 25 * 初始状态 26 */ 27 INIT = 0, 28 29 /** 30 * 状态--搜包成功 31 */ 32 CHECK_SUCCESS = 12, 33 34 /** 35 * 状态--下载中 36 */ 37 DOWNLOADING = 20, 38 39 /** 40 * 状态--下载暂停 41 */ 42 DOWNLOAD_PAUSE = 21, 43 44 /** 45 * 状态--取消下载 46 */ 47 DOWNLOAD_CANCEL = 22, 48 49 /** 50 * 状态--下载失败 51 */ 52 DOWNLOAD_FAILED = 23, 53 54 /** 55 * 状态--下载成功 56 */ 57 DOWNLOAD_SUCCESS = 24, 58 59 /** 60 * 状态--安装中 61 */ 62 INSTALLING = 80, 63 64 /** 65 * 状态--安装失败 66 */ 67 INSTALL_FAILED = 81, 68 69 /** 70 * 状态--安装成功 71 */ 72 INSTALL_SUCCESS = 82, 73 74 /** 75 * 状态-安装暂停 76 */ 77 INSTALL_PAUSE = 83, 78 79 /** 80 * 状态--升级中 81 */ 82 UPGRADING = 90, 83 84 /** 85 * 状态--升级失败 86 */ 87 UPGRADE_FAILED = 91, 88 89 /** 90 * 状态--升级成功 91 */ 92 UPGRADE_SUCCESS = 92, 93} 94 95/** 96 * 升级接口--状态结构体 97 * 98 * @since 2022-06-05 99 */ 100export interface OtaStatus { 101 /** 102 * 状态 103 */ 104 status: number; 105 106 /** 107 * 进度 108 */ 109 percent: number; 110 111 /** 112 * 终止原因 113 */ 114 endReason?: string; 115} 116 117export enum OtaMode { 118 REGULAR_OTA = 0, 119 STREAM_OTA = 1, 120 AB_REGULAR_OTA = 2, 121 AB_STREAM_OTA = 3 122} 123 124/** 125 * 升级错误码 126 * 127 * @since 2022-06-05 128 */ 129export enum ErrorCode { 130 /** 131 * 错误码--默认失败 132 */ 133 DEFAULT_ERROR = -1, 134 135 /** 136 * 搜包结果--网络错误 137 */ 138 CHECK_NETWORK_ERR = -2, 139 140 /** 141 * 搜包结果--搜包中 142 */ 143 CHECK_SYSTEM_BUSY = -207, 144 145 /** 146 * 错误码--鉴权失败 147 */ 148 AUTH_FAIL = '-208', 149 150 /** 151 * 错误码--鉴权失败服务错误 152 */ 153 AUTH_SERVER_ERROR = '-209', 154 155 /** 156 * 错误码--鉴权失败系统错误 157 */ 158 AUTH_SYSTEM_ERROR = '-210', 159 160 /** 161 * 错误码--网络错误 162 */ 163 NETWORK_ERROR = '-301', 164 165 /** 166 * 错误码--空间不足 167 */ 168 NO_ENOUGH_MEMORY = '-304', 169 170 /** 171 * 错误码--检验失败 172 */ 173 VERIFY_PACKAGE_FAIL = '-305', 174 175 /** 176 * 错误码--部分升級失敗 177 */ 178 UPDATE_PART_FAIL = '-409', 179 180 /** 181 * 错误码--电量不足 182 */ 183 NO_ENOUGH_BATTERY = '-830', 184 185 /** 186 * 错误码--网络不允许 187 */ 188 NETWORK_NOT_ALLOW = '3148800' 189} 190 191/** 192 * 通用常量 193 * 194 * @since 2022-06-05 195 */ 196export enum UpdateConstant { 197 /** 198 * 搜包重试时间 199 */ 200 CHECKING_RETRY_TIME = 5, 201 202 /** 203 * 搜包等待间隔 204 */ 205 CHECKING_WAITING_TIME_IN_SECONDS = 3, 206 207 /** 208 * 安装电量阈值 209 */ 210 UPGRADE_BATTERY_THRESHOLD = 30 211} 212 213/** 214 * 更新日志结构体 215 * 216 * @since 2022-06-05 217 */ 218export interface Changelog { 219 /** 220 * 默认语言 221 */ 222 defLanguage?: string; 223 224 /** 225 * 显示类型 226 */ 227 displayType?: number; 228 229 /** 230 * 所有语言更新日志 231 */ 232 language: Map<string, Language>; 233} 234 235/** 236 * 更新日志结构体--语言 237 * 238 * @since 2022-06-05 239 */ 240export interface Language { 241 /** 242 * 日志对应语言 243 */ 244 language?: string; 245 246 /** 247 * 日志特性数组 248 */ 249 featuresArray: Array<Features>; 250} 251 252/** 253 * 更新日志结构体--特性集合 254 * 255 * @since 2022-06-05 256 */ 257export interface Features { 258 /** 259 * 标题 260 */ 261 title: string; 262 263 /** 264 * 标识 265 */ 266 id: string; 267 268 /** 269 * 特性类型 270 */ 271 featureModuleType: string; 272 273 /** 274 * 特性数组 275 */ 276 featureList: Array<Feature>; 277 278 /** 279 * 图标 280 */ 281 icon: Icon; 282} 283 284/** 285 * 更新日志结构体--特性 286 * 287 * @since 2022-06-05 288 */ 289export interface Feature { 290 /** 291 * 子标题 292 */ 293 subTitle: string; 294 295 /** 296 * 内容数组 297 */ 298 contents: Array<string>; 299} 300 301/** 302 * 更新日志结构体--图标 303 * 304 * @since 2022-06-05 305 */ 306export interface Icon { 307 /** 308 * 标识 309 */ 310 id: string; 311 312 /** 313 * 包名 314 */ 315 pkg: string; 316 317 /** 318 * 数据流字串 319 */ 320 res: string; 321} 322 323/** 324 * changelog类型 325 * 326 * @since 2022-08-26 327 */ 328export enum ChangelogType { 329 /** 330 * 文本类型 331 */ 332 TEXT = -1, 333 334 /** 335 * 图文类型 336 */ 337 PICTURE_AND_TEXT = 0, 338 339 /** 340 * web类型 341 */ 342 WEB_TYPE = 1, 343} 344 345/** 346 * 动作常量枚举 347 * 348 * @since 2022-06-05 349 */ 350export enum Action { 351 /** 352 * 动作--跳转主页面搜包 353 */ 354 NOTIFICATION_LATER = 'com.ohos.updateapp.later', 355 356 /** 357 * 动作--跳转主页面搜包 358 */ 359 NOTIFICATION_CHECK = 'com.ohos.updateapp.check', 360 361 /** 362 * 动作--下载 363 */ 364 NOTIFICATION_DOWNLOAD = 'com.ohos.updateapp.download', 365 366 /** 367 * 动作--跳转新版本页面安装 368 */ 369 NOTIFICATION_INSTALL = 'com.ohos.updateapp.install', 370 371 /** 372 * 动作--跳转新版本页面 373 */ 374 NOTIFICATION_DETAIL = 'com.ohos.updateapp.detail', 375 376 /** 377 * 动作--升级失败跳转主页面搜包 378 */ 379 NOTIFICATION_HOT_UPGRADE_FAILED = 'com.ohos.updateapp.hot_upgrade_failed' 380} 381 382/** 383 * 接口执行结果 384 * 385 * @since 2022-07-11 386 */ 387export interface UpgradeData<T> { 388 /** 389 * 接口执行结果 390 */ 391 callResult: UpgradeCallResult; 392 393 /** 394 * 回调数据 395 */ 396 data?: T; 397 398 /** 399 * 错误结果 400 */ 401 error?: BusinessError 402} 403 404/** 405 * 接口执行错误码 406 * 407 * @since 2022-07-11 408 */ 409export enum UpgradeCallResult { 410 /** 411 * 接口执行成功 412 */ 413 OK = 1, 414 415 /** 416 * 接口执行失败 417 */ 418 ERROR = -1, 419 420 /** 421 * 接口执行超时 422 */ 423 TIME_OUT = -2 424} 425 426/** 427 * 倒计时弹窗类型 428 * 429 * @since 2023-02-08 430 */ 431export enum CountDownDialogType { 432 /** 433 * ota20S倒计时 434 */ 435 OTA = 0, 436 437 /** 438 * ab升级20S倒计时 439 */ 440 OTA_AB = 1, 441} 442 443 444/** 445 * BusinessError 446 * 447 * @since 2023-03-10 448 */ 449export interface BusinessError { 450 /** 451 * 数据 452 */ 453 data?: ErrCode[]; 454} 455 456/** 457 * ErrCode 458 * 459 * @since 2023-03-10 460 */ 461export interface ErrCode { 462 /** 463 * 错误码 464 */ 465 errorCode: ErrorCode; 466} 467 468/** 469 * 包名 470 */ 471export const PACKAGE_NAME = 'com.ohos.updateapp'; 472 473/** 474 * 主ability名 475 */ 476export const MAIN_ABILITY_NAME = 'com.ohos.updateapp.MainAbility';