@ohos.notificationSubscribe (NotificationSubscribe模块)
本模块提供通知订阅、取消订阅、通知移除等,一般情况下,只有系统应用具有这些操作权限。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import notificationSubscribe from '@ohos.notificationSubscribe';
NotificationSubscribe.subscribe
subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback<void>): void
订阅通知并指定订阅信息(callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | NotificationSubscriber | 是 | 通知订阅对象。 |
info | NotificationSubscribeInfo | 是 | 通知订阅信息。 |
callback | AsyncCallback<void> | 是 | 订阅动作回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
//subscribe回调
function subscribeCallback(err) {
if (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("subscribe success");
}
}
function onConsumeCallback(data) {
console.info("Consume callback: " + JSON.stringify(data));
}
let subscriber = {
onConsume: onConsumeCallback
};
let info = {
bundleNames: ["bundleName1","bundleName2"]
};
notificationSubscribe.subscribe(subscriber, info, subscribeCallback);
NotificationSubscribe.subscribe
subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback<void>): void
订阅当前用户下所有应用的通知(callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | NotificationSubscriber | 是 | 通知订阅对象。 |
callback | AsyncCallback<void> | 是 | 订阅动作回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
function subscribeCallback(err) {
if (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("subscribe success");
}
}
function onConsumeCallback(data) {
console.info("Consume callback: " + JSON.stringify(data));
}
let subscriber = {
onConsume: onConsumeCallback
};
notificationSubscribe.subscribe(subscriber, subscribeCallback);
NotificationSubscribe.subscribe
subscribe(subscriber: NotificationSubscriber, info?: NotificationSubscribeInfo): Promise<void>
订阅通知并指定订阅信息(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | NotificationSubscriber | 是 | 通知订阅对象。 |
info | NotificationSubscribeInfo | 否 | 通知订阅信息。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
function onConsumeCallback(data) {
console.info("Consume callback: " + JSON.stringify(data));
}
let subscriber = {
onConsume: onConsumeCallback
};
notificationSubscribe.subscribe(subscriber).then(() => {
console.info("subscribe success");
});
NotificationSubscribe.unsubscribe
unsubscribe(subscriber: NotificationSubscriber, callback: AsyncCallback<void>): void
取消订阅(callbcak形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | NotificationSubscriber | 是 | 通知订阅对象。 |
callback | AsyncCallback<void> | 是 | 取消订阅动作回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
function unsubscribeCallback(err) {
if (err) {
console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("unsubscribe success");
}
}
function onDisconnectCallback() {
console.info("subscribe disconnect");
}
let subscriber = {
onDisconnect: onDisconnectCallback
};
notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback);
NotificationSubscribe.unsubscribe
unsubscribe(subscriber: NotificationSubscriber): Promise<void>
取消订阅(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | NotificationSubscriber | 是 | 通知订阅对象。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
function onDisconnectCallback() {
console.info("subscribe disconnect");
}
let subscriber = {
onDisconnect: onDisconnectCallback
};
notificationSubscribe.unsubscribe(subscriber).then(() => {
console.info("unsubscribe success");
});
NotificationSubscribe.remove
remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason, callback: AsyncCallback<void>): void
删除指定通知(Callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundle | BundleOption | 是 | 指定应用的包信息。 |
notificationKey | NotificationKey | 是 | 通知键值。 |
reason | RemoveReason | 是 | 通知删除原因。 |
callback | AsyncCallback<void> | 是 | 删除指定通知回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600007 | The notification is not exist. |
17700001 | The specified bundle name was not found. |
示例:
function removeCallback(err) {
if (err) {
console.error(`remove failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("remove success");
}
}
let bundle = {
bundle: "bundleName1",
};
let notificationKey = {
id: 0,
label: "label",
};
let reason = notificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
notificationSubscribe.remove(bundle, notificationKey, reason, removeCallback);
NotificationSubscribe.remove
remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason): Promise<void>
删除指定通知(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundle | BundleOption | 是 | 指定应用的包信息。 |
notificationKey | NotificationKey | 是 | 通知键值。 |
reason | RemoveReason | 是 | 通知删除原因。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600007 | The notification is not exist. |
17700001 | The specified bundle name was not found. |
示例:
let bundle = {
bundle: "bundleName1",
};
let notificationKey = {
id: 0,
label: "label",
};
let reason = notificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
notificationSubscribe.remove(bundle, notificationKey, reason).then(() => {
console.info("remove success");
});
NotificationSubscribe.remove
remove(hashCode: string, reason: RemoveReason, callback: AsyncCallback<void>): void
删除指定通知(Callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
hashCode | string | 是 | 通知唯一ID。可以通过onConsume回调的入参SubscribeCallbackData获取其内部NotificationRequest对象中的hashCode。 |
reason | RemoveReason | 是 | 通知删除原因。 |
callback | AsyncCallback<void> | 是 | 删除指定通知回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600007 | The notification is not exist. |
示例:
let hashCode = 'hashCode';
function removeCallback(err) {
if (err) {
console.error(`remove failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("remove success");
}
}
let reason = notificationSubscribe.RemoveReason.CANCEL_REASON_REMOVE;
notificationSubscribe.remove(hashCode, reason, removeCallback);
NotificationSubscribe.remove
remove(hashCode: string, reason: RemoveReason): Promise<void>
删除指定通知(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
hashCode | string | 是 | 通知唯一ID。 |
reason | RemoveReason | 是 | 通知删除原因。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600007 | The notification is not exist. |
示例:
let hashCode = 'hashCode';
let reason = notificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
notificationSubscribe.remove(hashCode, reason).then(() => {
console.info("remove success");
});
NotificationSubscribe.removeAll
removeAll(bundle: BundleOption, callback: AsyncCallback<void>): void
删除指定应用的所有通知(Callback形式)。
系统能力:SystemCapability.Notification.Notification
系统API:此接口为系统接口,三方应用不支持调用。
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundle | BundleOption | 是 | 指定应用的包信息。 |
callback | AsyncCallback<void> | 是 | 删除指定应用的所有通知回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
17700001 | The specified bundle name was not found. |
示例:
function removeAllCallback(err) {
if (err) {
console.error(`removeAll failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("removeAll success");
}
}
let bundle = {
bundle: "bundleName1",
};
notificationSubscribe.removeAll(bundle, removeAllCallback);
NotificationSubscribe.removeAll
removeAll(callback: AsyncCallback<void>): void
删除所有通知(Callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 删除所有通知回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
示例:
function removeAllCallback(err) {
if (err) {
console.error(`removeAll failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("removeAll success");
}
}
notificationSubscribe.removeAll(removeAllCallback);
NotificationSubscribe.removeAll
removeAll(bundle?: BundleOption): Promise<void>
删除指定应用的所有通知(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundle | BundleOption | 否 | 指定应用的包信息。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
17700001 | The specified bundle name was not found. |
示例:
// 不指定应用时,删除所有通知
notificationSubscribe.removeAll().then(() => {
console.info("removeAll success");
});
NotificationSubscribe.removeAll
removeAll(userId: number, callback: AsyncCallback<void>): void
删除指定用户下的所有通知(callback形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | number | 是 | 用户ID。 |
callback | AsyncCallback<void> | 是 | 删除指定用户所有通知回调函数。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600008 | The user is not exist. |
示例:
function removeAllCallback(err) {
if (err) {
console.error(`removeAll failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("removeAll success");
}
}
let userId = 1;
notificationSubscribe.removeAll(userId, removeAllCallback);
Notification.removeAll
removeAll(userId: number): Promise<void>
删除指定用户下的所有通知(Promise形式)。
系统能力:SystemCapability.Notification.Notification
需要权限: ohos.permission.NOTIFICATION_CONTROLLER
系统API: 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | number | 是 | 用户ID。 |
错误码:
错误码详细介绍请参考errcode-notification。
错误码ID | 错误信息 |
---|---|
1600001 | Internal error. |
1600002 | Marshalling or unmarshalling error. |
1600003 | Failed to connect service. |
1600008 | The user is not exist. |
示例:
function removeAllCallback(err) {
if (err) {
console.error(`removeAll failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("removeAll success");
}
}
let userId = 1;
notificationSubscribe.removeAll(userId, removeAllCallback);
RemoveReason
系统能力:SystemCapability.Notification.Notification
系统API: 此接口为系统接口,三方应用不支持调用。
名称 | 值 | 说明 |
---|---|---|
CLICK_REASON_REMOVE | 1 | 点击通知后删除通知。 |
CANCEL_REASON_REMOVE | 2 | 用户删除通知。 |