js-apis-bundleMonitor.md 3.3 KB
Newer Older
W
wanghang 已提交
1 2 3 4
# Bundle.bundleMonitor模块(JS端sdk接口)

本模块提供监听应用安装,卸载,更新的能力。

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

## 导入模块

Z
zhaogan 已提交
11
```ts
W
wanghang 已提交
12 13 14 15 16 17 18 19 20
import bundleMonitor from '@ohos.bundle.bundleMonitor';
```

## 权限列表

| 权限                                 | 权限等级    | 描述                           |
| ------------------------------------ | ----------- | ------------------------------ |
| ohos.permission.LISTEN_BUNDLE_CHANGE | system_core | 可监听应用的安装,卸载,更新。 |

R
RayShih 已提交
21
权限等级参考[权限等级说明](../../security/accesstoken-overview.md)
W
wanghang 已提交
22 23 24 25 26

## BundleChangeInfo

**系统能力:** SystemCapability.BundleManager.BundleFramework.Core

J
junyi233 已提交
27
**系统API:**  此接口为系统接口,三方应用不支持调用
W
wanghang 已提交
28 29 30

| 名称       | 类型   | 可读 | 可写 | 说明                       |
| ---------- | ------ | ---- | ---- | -------------------------- |
Z
zhaogan 已提交
31 32
| bundleName | string | 是   | 否   | 应用状态发生变化的应用包名。 |
| userId     | number | 是   | 否   | 应用状态发生变化的用户id。   |
W
wanghang 已提交
33 34 35 36 37 38 39

## bundleMonitor.on

on(type: BundleChangedEvent, callback: Callback\<BundleChangedInfo>): void;

注册监听应用的安装,卸载,更新。

J
junyi233 已提交
40
**需要权限:** ohos.permission.LISTEN_BUNDLE_CHANGE
W
wanghang 已提交
41

J
junyi233 已提交
42
**系统API:**  此接口为系统接口,三方应用不支持调用
W
wanghang 已提交
43

J
junyi233 已提交
44
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
W
wanghang 已提交
45 46 47

**参数:**

J
junyi233 已提交
48
| 参数名                       | 类型     | 必填 | 说明               |
W
wanghang 已提交
49
| ---------------------------- | -------- | ---- | ------------------ |
Z
zhaogan 已提交
50 51
| BundleChangedEvent           | string   | 是   | 注册监听的事件类型。 |
| Callback\<BundleChangedInfo> | callback | 是   | 注册监听的回调函数。 |
W
wanghang 已提交
52 53 54

**示例:**

Z
zhaogan 已提交
55
```ts
W
wanghang 已提交
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
import bundleMonitor from '@ohos.bundle.bundleMonitor';

try {
    bundleMonitor.on('add', (bundleChangeInfo) => {
        console.info(`bundleName : ${bundleChangeInfo.bundleName} userId : ${bundleChangeInfo.userId}`);
	})
} catch (errData) {
    console.log(`errData is errCode:${errData.errCode}  message:${errData.message}`);
}
```

## bundleMonitor.off

off(type: BundleChangedEvent, callback?: Callback\<BundleChangedInfo>): void;

注销监听应用的安装,卸载,更新。

J
junyi233 已提交
73
**需要权限:** ohos.permission.LISTEN_BUNDLE_CHANGE
W
wanghang 已提交
74

J
junyi233 已提交
75
**系统API:**  此接口为系统接口,三方应用不支持调用
W
wanghang 已提交
76

J
junyi233 已提交
77
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
W
wanghang 已提交
78 79 80

**参数:**

J
junyi233 已提交
81
| 参数名                       | 类型     | 必填 | 说明                                                       |
W
wanghang 已提交
82
| ---------------------------- | -------- | ---- | ---------------------------------------------------------- |
Z
zhaogan 已提交
83 84
| BundleChangedEvent           | string   | 是   | 注销监听的事件类型。                                         |
| Callback\<BundleChangedInfo> | callback | 是   | 注销监听的回调函数,当为空时表示注销当前事件的所有callback。 |
W
wanghang 已提交
85 86 87

**示例:**

Z
zhaogan 已提交
88
```ts
W
wanghang 已提交
89 90 91 92 93 94 95 96 97
import bundleMonitor from '@ohos.bundle.bundleMonitor';

try {
    bundleMonitor.off('add');
} catch (errData) {
    console.log(`errData is errCode:${errData.errCode}  message:${errData.message}`);
}
```