js-apis-app-ability-quickFixManager.md 7.3 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.quickFixManager (quickFixManager)
Y
yuyaozhi 已提交
2

Y
yuyaozhi 已提交
3
quickFixManager模块提供快速修复的能力,快速修复是OpenHarmony提供给开发者的一种技术手段,支持开发者以远快于(小时级、分钟级)应用升级的方式进行缺陷修复。
Y
yuyaozhi 已提交
4 5

> **说明:**
Z
zhangyafei.echo 已提交
6
>
Y
yuyaozhi 已提交
7 8 9 10
> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

M
m00512953 已提交
11
```ts
D
donglin 已提交
12
import quickFixManager from '@ohos.app.ability.quickFixManager';
Y
yuyaozhi 已提交
13 14 15 16 17 18 19 20 21 22
```

## HapModuleQuickFixInfo

hap级别的快速修复信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

23 24
| 名称        | 类型                 | 必填 | 说明                                                         |
| ----------- | -------------------- | ---- | ------------------------------------------------------------ |
25
| moduleName    | string               | 是   | HAP的名称。                               |
26 27
| originHapHash    | string               | 是   | 指示hap的哈希值。                               |
| quickFixFilePath    | string               | 是   | 指示快速修复文件的安装路径。                               |
Y
yuyaozhi 已提交
28 29 30 31 32 33 34 35 36

## ApplicationQuickFixInfo

应用级别的快速修复信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

37 38
| 名称        | 类型                 | 必填 | 说明                                                         |
| ----------- | -------------------- | ---- | ------------------------------------------------------------ |
39
| bundleName    | string               | 是   | 应用Bundle名称。                       |
40 41 42 43 44
| bundleVersionCode    | number               | 是   | 应用的版本号。                               |
| bundleVersionName    | string               | 是   | 应用版本号的文字描述。                               |
| quickFixVersionCode    | number               | 是   | 快速修复补丁包的版本号。                               |
| quickFixVersionName    | string               | 是   | 快速修复补丁包版本号的文字描述。                               |
| hapModuleQuickFixInfo    | Array\<[HapModuleQuickFixInfo](#hapmodulequickfixinfo)>      | 是   | hap级别的快速修复信息。     |
Y
yuyaozhi 已提交
45 46 47 48 49 50 51

## quickFixManager.applyQuickFix

applyQuickFix(hapModuleQuickFixFiles: Array\<string>, callback: AsyncCallback\<void>): void;

快速修复的补丁安装接口。

52 53
**需要权限**: ohos.permission.INSTALL_BUNDLE

Y
yuyaozhi 已提交
54 55 56 57 58 59
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhangyafei.echo 已提交
60
  | 参数名 | 类型 | 必填 | 说明 |
Y
yuyaozhi 已提交
61
  | -------- | -------- | -------- | -------- |
Z
zhangyafei.echo 已提交
62 63 64 65
  | hapModuleQuickFixFiles | Array\<string> | 是 | 快速修复补丁文件(补丁文件需包含有效的文件路径)。 |
  | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法。 |

> 说明:调用applyQuickFix接口时,补丁文件所在路径为应用沙箱路径。沙箱路径的获取参考[获取应用的沙箱路径](js-apis-bundle-BundleInstaller.md#获取应用的沙箱路径),映射到设备上的路径为/proc/&lt;应用进程Id&gt;/root/沙箱路径。
Y
yuyaozhi 已提交
66 67

**示例:**
Z
zhangyafei.echo 已提交
68

M
m00512953 已提交
69
```ts
D
donglin 已提交
70
  try {
M
mingxihua 已提交
71
    let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf'];
D
donglin 已提交
72
    quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => {
Y
yuyaozhi 已提交
73
      if (error) {
M
mingxihua 已提交
74
          console.error( `applyQuickFix failed with error: ${error}`);
Y
yuyaozhi 已提交
75
      } else {
M
mingxihua 已提交
76
          console.info( 'applyQuickFix success');
Y
yuyaozhi 已提交
77
      }
M
mingxihua 已提交
78
    });
D
donglin 已提交
79
  } catch (paramError) {
M
mingxihua 已提交
80
    console.error('error.code: ${paramError.code}, error.message: ${paramError.message}');
D
donglin 已提交
81
  }
Y
yuyaozhi 已提交
82 83 84 85
```

## quickFixManager.applyQuickFix

86
applyQuickFix(hapModuleQuickFixFiles: Array\<string>): Promise\<void>;
Y
yuyaozhi 已提交
87 88 89

快速修复的补丁安装接口。

90 91
**需要权限**: ohos.permission.INSTALL_BUNDLE

Y
yuyaozhi 已提交
92 93 94 95 96 97
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhangyafei.echo 已提交
98
  | 参数名 | 类型 | 必填 | 说明 |
Y
yuyaozhi 已提交
99
  | -------- | -------- | -------- | -------- |
Z
zhangyafei.echo 已提交
100
  | hapModuleQuickFixFiles | Array\<string> | 是 | 快速修复补丁文件(补丁文件需包含有效的文件路径)。 |
Y
yuyaozhi 已提交
101 102 103

**返回值:**

Z
zhangyafei.echo 已提交
104
  | 类型 | 说明 |
Y
yuyaozhi 已提交
105
  | -------- | -------- |
Z
zhangyafei.echo 已提交
106
  | Promise\<void> | 返回相应结果。 |
Y
yuyaozhi 已提交
107 108

**示例:**
Z
zhangyafei.echo 已提交
109

M
m00512953 已提交
110
```ts
M
mingxihua 已提交
111
  let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf'];
D
donglin 已提交
112 113
  try {
    quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => {
M
mingxihua 已提交
114
      console.info('applyQuickFix success');
D
donglin 已提交
115
    }).catch((error) => {
M
mingxihua 已提交
116
      console.error(`applyQuickFix err: ${error}`);
M
mingxihua 已提交
117
    });
D
donglin 已提交
118
  } catch (paramError) {
M
mingxihua 已提交
119
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
120
  }
Y
yuyaozhi 已提交
121 122 123 124 125 126 127 128
```

## quickFixManager.getApplicationQuickFixInfo

getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback\<ApplicationQuickFixInfo>): void;

获取应用的快速修复信息。

129 130
**需要权限**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

Y
yuyaozhi 已提交
131 132 133 134 135 136
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

137 138 139 140
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 |应用Bundle名称。  |
| callback | AsyncCallback\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | 是 | 应用的快速修复信息。 |
Y
yuyaozhi 已提交
141 142

**示例:**
Z
zhangyafei.echo 已提交
143

M
m00512953 已提交
144
```ts
D
donglin 已提交
145
  try {
M
mingxihua 已提交
146
    let bundleName = 'bundleName';
D
donglin 已提交
147 148
    quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => {
      if (error) {
M
mingxihua 已提交
149
        console.error(`getApplicationQuickFixInfo error: ${error}`);
D
donglin 已提交
150
      } else {
M
mingxihua 已提交
151
        console.info(`getApplicationQuickFixInfo success: ${data}`);
D
donglin 已提交
152
      }
M
mingxihua 已提交
153
    });
D
donglin 已提交
154
  } catch (paramError) {
M
mingxihua 已提交
155
    console.error('error: ${paramError.code}, ${paramError.message}');
Z
zhangyafei.echo 已提交
156
  }
Y
yuyaozhi 已提交
157 158 159 160 161 162 163 164
```

## quickFixManager.getApplicationQuickFixInfo

getApplicationQuickFixInfo(bundleName: string): Promise\<ApplicationQuickFixInfo>;

获取应用的快速修复信息。

165 166
**需要权限**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

Y
yuyaozhi 已提交
167 168 169 170 171 172
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

173 174 175
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 | 应用Bundle名称。 |
Y
yuyaozhi 已提交
176 177 178

**返回值:**

Z
zhangyafei.echo 已提交
179
  | 类型 | 说明 |
Y
yuyaozhi 已提交
180
  | -------- | -------- |
Z
zhangyafei.echo 已提交
181
  | Promise\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | 返回应用的快速修复信息。 |
Y
yuyaozhi 已提交
182 183

**示例:**
Z
zhangyafei.echo 已提交
184 185

  ```ts
D
donglin 已提交
186
  try {
M
mingxihua 已提交
187
    let bundleName = 'bundleName';
D
donglin 已提交
188
    quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => {
M
mingxihua 已提交
189
      console.info(`getApplicationQuickFixInfo success: ${data}`);
D
donglin 已提交
190
    }).catch((error) => {
M
mingxihua 已提交
191
      console.error(`getApplicationQuickFixInfo err: ${error}`);
M
mingxihua 已提交
192
    });
D
donglin 已提交
193
  } catch (paramError) {
M
mingxihua 已提交
194
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
195
  }
196
  ```