js-apis-application-serviceExtensionAbility.md 6.8 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)
2

Y
yuyaozhi 已提交
3 4
ServiceExtensionAbility模块提供ServiceExtension服务扩展相关接口的能力。

Y
yuyaozhi 已提交
5 6
> **说明:**
> 
D
donglin 已提交
7
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
8
> 本模块接口仅可在Stage模型下使用。
9 10 11

## 导入模块

M
m00512953 已提交
12 13
```ts
import ServiceExtensionAbility from '@ohos.application.ServiceExtensionAbility';
14 15 16 17 18 19 20 21
```

## 权限



## 属性

22 23
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

Y
yuyaozhi 已提交
24 25
**系统API**: 此接口为系统接口,三方应用不支持调用。

26
| 名称 | 类型 | 可读 | 可写 | 说明 | 
27
| -------- | -------- | -------- | -------- | -------- |
M
m00512953 已提交
28
| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)  | 是 | 否 | ServiceExtension的上下文环境,继承自ExtensionContext。 | 
29 30


Y
yuyaozhi 已提交
31
## ServiceExtensionAbility.onCreate
32

33
onCreate(want: Want): void;
34

35
Extension生命周期回调,在创建时回调,执行初始化业务逻辑操作。
36

Y
yuyaozhi 已提交
37
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
38

Y
yuyaozhi 已提交
39 40
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
41
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
42

43
  | 参数名 | 类型 | 必填 | 说明 | 
44
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
45
  | want |  [Want](js-apis-application-want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
46

Y
yuyaozhi 已提交
47 48
**示例:**

M
m00512953 已提交
49
  ```ts
ahjxliubao2's avatar
ahjxliubao2 已提交
50 51
  class ServiceExt extends ServiceExtension {
    onCreate(want) {
52
      console.log('onCreate, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
53
    }
54 55 56 57
  }
  ```


Y
yuyaozhi 已提交
58
## ServiceExtensionAbility.onDestroy
59

60
onDestroy(): void;
61

62
Extension生命周期回调,在销毁时回调,执行资源清理等操作。
63

Y
yuyaozhi 已提交
64
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
65

Y
yuyaozhi 已提交
66 67
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
68
**示例:**
ahjxliubao2's avatar
ahjxliubao2 已提交
69

M
m00512953 已提交
70
  ```ts
ahjxliubao2's avatar
ahjxliubao2 已提交
71 72
  class ServiceExt extends ServiceExtension {
    onDestroy() {
73
      console.log('onDestroy');
ahjxliubao2's avatar
ahjxliubao2 已提交
74
    }
75 76 77 78
  }
  ```


Y
yuyaozhi 已提交
79
## ServiceExtensionAbility.onRequest
80

81
onRequest(want: Want, startId: number): void;
82

83
Extension生命周期回调,如果是startAbility拉起的服务,会在onCreate之后回调。每次拉起服务都会回调,startId会递增。
84

Y
yuyaozhi 已提交
85
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
86

Y
yuyaozhi 已提交
87 88
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
89
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
90

91
  | 参数名 | 类型 | 必填 | 说明 | 
92
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
93
  | want |  [Want](js-apis-application-want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
94
  | startId | number | 是 | 返回拉起次数。首次拉起初始值返回1,多次之后自动递增。 | 
95

Y
yuyaozhi 已提交
96 97
**示例:**

M
m00512953 已提交
98
  ```ts
ahjxliubao2's avatar
ahjxliubao2 已提交
99 100
  class ServiceExt extends ServiceExtension {
    onRequest(want, startId) {
101
      console.log('onRequest, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
102
    }
103 104 105 106
  }
  ```


Y
yuyaozhi 已提交
107
## ServiceExtensionAbility.onConnect
108

109
onConnect(want: Want): rpc.RemoteObject;
110

111
Extension生命周期回调,如果是connectAbility拉起的服务,会在onCreate之后回调。返回一个RemoteObject对象,用于和客户端进行通信。
112

Y
yuyaozhi 已提交
113
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
114

Y
yuyaozhi 已提交
115 116
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
117
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
118

119
  | 参数名 | 类型 | 必填 | 说明 | 
120
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
121
  | want |  [Want](js-apis-application-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
122

Y
yuyaozhi 已提交
123 124
**返回值:**

125
  | 类型 | 说明 | 
126
  | -------- | -------- |
127
  | rpc.RemoteObject | 一个RemoteObject对象,用于和客户端进行通信。 | 
128

Y
yuyaozhi 已提交
129 130
**示例:**

M
m00512953 已提交
131
  ```ts
132 133 134 135 136
  import rpc from '@ohos.rpc'
  class StubTest extends rpc.RemoteObject{
      constructor(des) {
          super(des);
      }
Y
yuyaozhi 已提交
137
      onConnect(code, data, reply, option) {
138 139
      }
  }
ahjxliubao2's avatar
ahjxliubao2 已提交
140 141
  class ServiceExt extends ServiceExtension {
    onConnect(want) {
142 143
      console.log('onConnect , want:' + want.abilityName);
      return new StubTest("test");
ahjxliubao2's avatar
ahjxliubao2 已提交
144
    }
145 146 147 148
  }
  ```


Y
yuyaozhi 已提交
149
## ServiceExtensionAbility.onDisconnect
150

151
onDisconnect(want: Want): void;
152 153 154

Extension的生命周期,断开服务连接时回调。

Y
yuyaozhi 已提交
155
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
156

Y
yuyaozhi 已提交
157 158
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
159
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
160

161
  | 参数名 | 类型 | 必填 | 说明 | 
162
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
163
  | want |[Want](js-apis-application-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
164

Y
yuyaozhi 已提交
165 166
**示例:**

M
m00512953 已提交
167
  ```ts
ahjxliubao2's avatar
ahjxliubao2 已提交
168 169
  class ServiceExt extends ServiceExtension {
    onDisconnect(want) {
170
      console.log('onDisconnect, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
171
    }
172 173
  }
  ```
Y
yuyaozhi 已提交
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

## ServiceExtensionAbility.onReconnect

onReconnect(want: Want): void;

当新客户端在所有以前的客户端连接之后尝试连接到服务扩展时调用

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

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

**参数:**

  | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
189
  | want |[Want](js-apis-application-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
Y
yuyaozhi 已提交
190 191 192

**示例:**

M
m00512953 已提交
193
  ```ts
Y
yuyaozhi 已提交
194
  class ServiceExt extends ServiceExtension {
195
    onReconnect(want) {
196
      console.log('onReconnect, want:' + want.abilityName);
Y
yuyaozhi 已提交
197 198 199 200
    }
  }
  ```

201
## ServiceExtensionAbility.onConfigurationUpdated
Y
yuyaozhi 已提交
202 203 204

onConfigurationUpdated(config: Configuration): void;

205 206
当Extension更新配置信息时调用。

207 208 209
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。
Y
yuyaozhi 已提交
210 211 212 213 214

**参数:**

  | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
215
  | config | [Configuration](js-apis-application-configuration.md) | 是 | 表示需要更新的配置信息。 | 
Y
yuyaozhi 已提交
216 217 218

**示例:**
    
M
m00512953 已提交
219
  ```ts
220
  class ServiceExt extends ServiceExtension {
Y
yuyaozhi 已提交
221 222 223 224 225 226 227 228 229 230 231 232
      onConfigurationUpdated(config) {
          console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
      }
  }
  ```

## ServiceExtensionAbility.dump

dump(params: Array\<string>): Array\<string>;

转储客户端信息时调用。

233
**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
234 235

**系统API**: 此接口为系统接口,三方应用不支持调用。
Y
yuyaozhi 已提交
236 237 238 239 240 241 242 243 244

**参数:**

  | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
  | params | Array\<string> | 是 | 表示命令形式的参数。| 

**示例:**
    
M
m00512953 已提交
245
  ```ts
246
  class ServiceExt extends ServiceExtension {
Y
yuyaozhi 已提交
247 248 249 250 251 252 253
      dump(params) {
          console.log('dump, params:' + JSON.stringify(params));
          return ["params"]
      }
  }
  ```