RemoteNotificationExtensionAbility为通知扩展Ability，提供获取场景化消息数据和生命周期结束的回调。有如下约束：

* RemoteNotificationExtensionAbility为独立子进程，轻量级，不允许唤醒主进程。
* 不允许调用通知API、卡片API、窗口API、弹窗API、实况窗API。
* 生命周期根据场景受控，默认小于10秒，超过10秒子进程生命周期结束。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Push.PushService

**起始版本：** 4.1.0(11)

## 导入模块

PhonePC/2in1TabletTVWearable



```
1. import { RemoteNotificationExtensionAbility } from '@kit.PushKit';
```

## 属性

PhonePC/2in1TabletTVWearable

**模型约束：** 属性仅可在Stage模型下使用。

**系统能力：** SystemCapability.Push.PushService

**设备行为差异：** 对于5.1.0(18)以前版本，该属性在Phone、Tablet、PC/2in1中可正常使用，在其他设备类型中无效果。对于5.1.0(18)~6.0.2(22)版本，该属性在Phone、Tablet、PC/2in1、Wearable中可正常使用，在其他设备类型中无效果。对于6.1.0(23)及之后版本，该属性在Phone、Tablet、PC/2in1、Wearable、TV中均可正常使用。

**起始版本：** 4.1.0(11)

展开

| 名称 | 类型 | 只读 | 可选 | 说明 |
| --- | --- | --- | --- | --- |
| context | [RemoteNotificationExtensionContext](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/push-remote-notification-extension-context) | 否 | 否 | RemoteNotificationExtensionAbility的上下文环境，继承自[ExtensionContext](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-extensioncontext)。 |

## onReceiveMessage

PhonePC/2in1TabletTVWearable

onReceiveMessage(remoteNotificationInfo: pushCommon.RemoteNotificationInfo): Promise<pushCommon.RemoteNotificationContent>

应用继承RemoteNotificationExtensionAbility后接收通知扩展数据的接口，使用Promise异步回调。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Push.PushService

**设备行为差异：** 对于5.1.0(18)以前版本，该接口在Phone、Tablet、PC/2in1中可正常使用，在其他设备类型中无效果。对于5.1.0(18)~6.0.2(22)版本，该接口在Phone、Tablet、PC/2in1、Wearable中可正常使用，在其他设备类型中无效果。对于6.1.0(23)及之后版本，该接口在Phone、Tablet、PC/2in1、Wearable、TV中均可正常使用。

**起始版本：** 4.1.0(11)

**参数：**

展开

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| remoteNotificationInfo | pushCommon.[RemoteNotificationInfo](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/push-pushcommon#remotenotificationinfo) | 是 | 通知扩展数据。 |

**返回值：**

展开

| 类型 | 说明 |
| --- | --- |
| Promise<pushCommon.[RemoteNotificationContent](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/push-pushcommon#remotenotificationcontent)> | Promise对象，返回通知扩展替换内容。 |

**示例：**



```
1. import { RemoteNotificationExtensionAbility, pushCommon } from '@kit.PushKit';
2. import { hilog } from '@kit.PerformanceAnalysisKit';

4. // 此处以RemoteNotificationExtAbility继承RemoteNotificationExtensionAbility为例
5. export default class RemoteNotificationExtAbility extends RemoteNotificationExtensionAbility {
6. // remoteNotificationInfo为场景化消息数据
7. async onReceiveMessage(remoteNotificationInfo: pushCommon.RemoteNotificationInfo): Promise<pushCommon.RemoteNotificationContent> {
8. hilog.info(0x0000, 'testTag', 'TestExtAbility onReceiveMessage');
9. return {
10. title: 'Default replace title.',
11. text: 'Default replace text.',
12. badgeNumber: 1,
13. wantAgent: {
14. abilityName: 'DemoAbility',
15. parameters: {
16. key: 'Default value'
17. }
18. }
19. }
20. }
21. }
```

## onDestroy

PhonePC/2in1TabletTVWearable

onDestroy(): void

当RemoteNotificationExtensionAbility生命周期结束时，会执行该回调，建议在该方法中执行资源清理等操作。

**模型约束：** 此接口仅可在Stage模型下使用。

**系统能力：** SystemCapability.Push.PushService

**设备行为差异：** 对于5.1.0(18)以前版本，该接口在Phone、Tablet、PC/2in1中可正常使用，在其他设备类型中无效果。对于5.1.0(18)~6.0.2(22)版本，该接口在Phone、Tablet、PC/2in1、Wearable中可正常使用，在其他设备类型中无效果。对于6.1.0(23)及之后版本，该接口在Phone、Tablet、PC/2in1、Wearable、TV中均可正常使用。

**起始版本：** 4.1.0(11)

**示例：**



```
1. import { RemoteNotificationExtensionAbility } from '@kit.PushKit';
2. import { hilog } from '@kit.PerformanceAnalysisKit';

4. // 此处以RemoteNotificationExtAbility继承RemoteNotificationExtensionAbility为例
5. export default class RemoteNotificationExtAbility extends RemoteNotificationExtensionAbility {
6. onDestroy(): void {
7. hilog.info(0x0000, 'testTag', 'RemoteNotificationExtAbility onDestroy.');
8. }
9. }
```