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 UPGRADING = 90, 78 79 /** 80 * 状态--升级失败 81 */ 82 UPGRADE_FAILED = 91, 83 84 /** 85 * 状态--升级成功 86 */ 87 UPGRADE_SUCCESS = 92, 88} 89 90/** 91 * 升级接口--状态结构体 92 * 93 * @since 2022-06-05 94 */ 95export interface OtaStatus { 96 /** 97 * 状态 98 */ 99 status: number; 100 101 /** 102 * 进度 103 */ 104 percent: number; 105 106 /** 107 * 终止原因 108 */ 109 endReason?: string; 110} 111 112/** 113 * 升级错误码 114 * 115 * @since 2022-06-05 116 */ 117export enum ErrorCode { 118 /** 119 * 错误码--默认失败 120 */ 121 DEFAULT_ERROR = -1, 122 123 /** 124 * 搜包结果--网络错误 125 */ 126 CHECK_NETWORK_ERR = -2, 127 128 /** 129 * 搜包结果--搜包中 130 */ 131 CHECK_SYSTEM_BUSY = -207, 132 133 /** 134 * 错误码--鉴权失败 135 */ 136 AUTH_FAIL = '-208', 137 138 /** 139 * 错误码--鉴权失败服务错误 140 */ 141 AUTH_SERVER_ERROR = '-209', 142 143 /** 144 * 错误码--鉴权失败系统错误 145 */ 146 AUTH_SYSTEM_ERROR = '-210', 147 148 /** 149 * 错误码--网络错误 150 */ 151 NETWORK_ERROR = '-301', 152 153 /** 154 * 错误码--空间不足 155 */ 156 NO_ENOUGH_MEMORY = '-304', 157 158 /** 159 * 错误码--检验失败 160 */ 161 VERIFY_PACKAGE_FAIL = '-305', 162 163 /** 164 * 错误码--部分升級失敗 165 */ 166 UPDATE_PART_FAIL = '-409', 167 168 /** 169 * 错误码--电量不足 170 */ 171 NO_ENOUGH_BATTERY = '-830', 172 173 /** 174 * 错误码--网络不允许 175 */ 176 NETWORK_NOT_ALLOW = '3148800' 177} 178 179/** 180 * 通用常量 181 * 182 * @since 2022-06-05 183 */ 184export enum UpdateConstant { 185 /** 186 * 搜包重试时间 187 */ 188 CHECKING_RETRY_TIME = 5, 189 190 /** 191 * 搜包等待间隔 192 */ 193 CHECKING_WAITING_TIME_IN_SECONDS = 3, 194 195 /** 196 * 安装电量阈值 197 */ 198 UPGRADE_BATTERY_THRESHOLD = 30 199} 200 201/** 202 * 更新日志结构体 203 * 204 * @since 2022-06-05 205 */ 206export interface Changelog { 207 /** 208 * 默认语言 209 */ 210 defLanguage?: string; 211 212 /** 213 * 显示类型 214 */ 215 displayType?: number; 216 217 /** 218 * 所有语言更新日志 219 */ 220 language: Map<string, Language>; 221} 222 223/** 224 * 更新日志结构体--语言 225 * 226 * @since 2022-06-05 227 */ 228export interface Language { 229 /** 230 * 日志对应语言 231 */ 232 language?: string; 233 234 /** 235 * 日志特性数组 236 */ 237 featuresArray: Array<Features>; 238} 239 240/** 241 * 更新日志结构体--特性集合 242 * 243 * @since 2022-06-05 244 */ 245export interface Features { 246 /** 247 * 标题 248 */ 249 title: string; 250 251 /** 252 * 标识 253 */ 254 id: string; 255 256 /** 257 * 特性类型 258 */ 259 featureModuleType: string; 260 261 /** 262 * 特性数组 263 */ 264 featureList: Array<Feature>; 265 266 /** 267 * 图标 268 */ 269 icon: Icon; 270} 271 272/** 273 * 更新日志结构体--特性 274 * 275 * @since 2022-06-05 276 */ 277export interface Feature { 278 /** 279 * 子标题 280 */ 281 subTitle: string; 282 283 /** 284 * 内容数组 285 */ 286 contents: Array<string>; 287} 288 289/** 290 * 更新日志结构体--图标 291 * 292 * @since 2022-06-05 293 */ 294export interface Icon { 295 /** 296 * 标识 297 */ 298 id: string; 299 300 /** 301 * 包名 302 */ 303 pkg: string; 304 305 /** 306 * 数据流字串 307 */ 308 res: string; 309} 310 311/** 312 * changelog类型 313 * 314 * @since 2022-08-26 315 */ 316export enum ChangelogType { 317 /** 318 * 文本类型 319 */ 320 TEXT = -1, 321 322 /** 323 * 图文类型 324 */ 325 PICTURE_AND_TEXT = 0, 326 327 /** 328 * web类型 329 */ 330 WEB_TYPE = 1, 331} 332 333/** 334 * 动作常量枚举 335 * 336 * @since 2022-06-05 337 */ 338export enum Action { 339 /** 340 * 动作--跳转主页面搜包 341 */ 342 NOTIFICATION_LATER = 'com.ohos.updateapp.later', 343 344 /** 345 * 动作--跳转主页面搜包 346 */ 347 NOTIFICATION_CHECK = 'com.ohos.updateapp.check', 348 349 /** 350 * 动作--下载 351 */ 352 NOTIFICATION_DOWNLOAD = 'com.ohos.updateapp.download', 353 354 /** 355 * 动作--跳转新版本页面安装 356 */ 357 NOTIFICATION_INSTALL = 'com.ohos.updateapp.install', 358 359 /** 360 * 动作--跳转新版本页面 361 */ 362 NOTIFICATION_DETAIL = 'com.ohos.updateapp.detail', 363 364 /** 365 * 动作--升级失败跳转主页面搜包 366 */ 367 NOTIFICATION_HOT_UPGRADE_FAILED = 'com.ohos.updateapp.hot_upgrade_failed' 368} 369 370/** 371 * 接口执行结果 372 * 373 * @since 2022-07-11 374 */ 375export interface UpgradeData<T> { 376 /** 377 * 接口执行结果 378 */ 379 callResult: UpgradeCallResult; 380 381 /** 382 * 回调数据 383 */ 384 data?: T; 385 386 /** 387 * 错误结果 388 */ 389 error?: BusinessError 390} 391 392/** 393 * 接口执行错误码 394 * 395 * @since 2022-07-11 396 */ 397export enum UpgradeCallResult { 398 /** 399 * 接口执行成功 400 */ 401 OK = 1, 402 403 /** 404 * 接口执行失败 405 */ 406 ERROR = -1, 407 408 /** 409 * 接口执行超时 410 */ 411 TIME_OUT = -2 412} 413 414/** 415 * 倒计时弹窗类型 416 * 417 * @since 2023-02-08 418 */ 419export enum CountDownDialogType { 420 /** 421 * ota20S倒计时 422 */ 423 OTA = 0, 424 425 /** 426 * ab升级20S倒计时 427 */ 428 OTA_AB = 1, 429} 430 431 432/** 433 * BusinessError 434 * 435 * @since 2023-03-10 436 */ 437export interface BusinessError { 438 /** 439 * 数据 440 */ 441 data?: ErrCode[]; 442} 443 444/** 445 * ErrCode 446 * 447 * @since 2023-03-10 448 */ 449export interface ErrCode { 450 /** 451 * 错误码 452 */ 453 errorCode: ErrorCode; 454} 455 456/** 457 * 包名 458 */ 459export const PACKAGE_NAME = 'com.ohos.updateapp'; 460 461/** 462 * 主ability名 463 */ 464export const MAIN_ABILITY_NAME = 'com.ohos.updateapp.MainAbility';