1e41f4b71Sopenharmony_ci# @ohos.ability.featureAbility (FeatureAbility模块) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ciFeatureAbility模块提供与用户进行交互的Ability的能力,包括启动新的Ability、停止Ability、获取dataAbilityHelper对象、获取当前Ability对应的窗口,连接断连Service等。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 本模块接口仅可在FA模型下使用。 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## 使用限制 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ciFeatureAbility模块的接口只能在Page类型的Ability中调用 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## 导入模块 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci```ts 17e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 18e41f4b71Sopenharmony_ci``` 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci## featureAbility.startAbility 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_cistartAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>): void 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci启动新的Ability。使用callback异步回调。 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci> **说明:** 27e41f4b71Sopenharmony_ci> 28e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**参数:** 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 37e41f4b71Sopenharmony_ci| --------- | ---------------------------------------- | ---- | -------------- | 38e41f4b71Sopenharmony_ci| parameter | [StartAbilityParameter](js-apis-inner-ability-startAbilityParameter.md) | 是 | 表示被启动的Ability。 | 39e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数。当启动Ability成功,err为undefined,data为0表示启动成功,data为其他表示启动失败;否则为错误对象。 | 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci**示例:** 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 44e41f4b71Sopenharmony_ci```ts 45e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_cifeatureAbility.startAbility( 48e41f4b71Sopenharmony_ci { 49e41f4b71Sopenharmony_ci want: 50e41f4b71Sopenharmony_ci { 51e41f4b71Sopenharmony_ci action: '', 52e41f4b71Sopenharmony_ci entities: [''], 53e41f4b71Sopenharmony_ci type: '', 54e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 55e41f4b71Sopenharmony_ci deviceId: '', 56e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 57e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 58e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 59e41f4b71Sopenharmony_ci uri: '' 60e41f4b71Sopenharmony_ci }, 61e41f4b71Sopenharmony_ci }, 62e41f4b71Sopenharmony_ci (error, data) => { 63e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 64e41f4b71Sopenharmony_ci console.error(`startAbility fail, error: ${JSON.stringify(error)}`); 65e41f4b71Sopenharmony_ci } else { 66e41f4b71Sopenharmony_ci console.log(`startAbility success, data: ${JSON.stringify(data)}`); 67e41f4b71Sopenharmony_ci } 68e41f4b71Sopenharmony_ci } 69e41f4b71Sopenharmony_ci); 70e41f4b71Sopenharmony_ci``` 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci## featureAbility.startAbility 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_cistartAbility(parameter: StartAbilityParameter): Promise\<number> 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci启动新的Ability。使用Promise异步回调。 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci> **说明:** 81e41f4b71Sopenharmony_ci> 82e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**参数:** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 91e41f4b71Sopenharmony_ci| --------- | ---------------------------------------- | ---- | -------------- | 92e41f4b71Sopenharmony_ci| parameter | [StartAbilityParameter](js-apis-inner-ability-startAbilityParameter.md) | 是 | 表示被启动的Ability。 | 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci**返回值:** 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci| 类型 | 说明 | 97e41f4b71Sopenharmony_ci| ---------------------------------------- | ------- | 98e41f4b71Sopenharmony_ci| Promise\<number> | Promise对象。返回0表示启动成功,返回其他表示启动失败。 | 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci**示例:** 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 103e41f4b71Sopenharmony_ci```ts 104e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_cifeatureAbility.startAbility( 107e41f4b71Sopenharmony_ci { 108e41f4b71Sopenharmony_ci want: 109e41f4b71Sopenharmony_ci { 110e41f4b71Sopenharmony_ci action: 'ohos.want.action.home', 111e41f4b71Sopenharmony_ci entities: ['entity.system.home'], 112e41f4b71Sopenharmony_ci type: 'MIMETYPE', 113e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 114e41f4b71Sopenharmony_ci deviceId: '', 115e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 116e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 117e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 118e41f4b71Sopenharmony_ci uri: '' 119e41f4b71Sopenharmony_ci }, 120e41f4b71Sopenharmony_ci } 121e41f4b71Sopenharmony_ci).then((data) => { 122e41f4b71Sopenharmony_ci console.info(`startAbility data: ${JSON.stringify(data)}`); 123e41f4b71Sopenharmony_ci}); 124e41f4b71Sopenharmony_ci``` 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci## featureAbility.acquireDataAbilityHelper<sup>7+</sup> 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ciacquireDataAbilityHelper(uri: string): DataAbilityHelper 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci获取dataAbilityHelper对象。 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci> **说明:** 133e41f4b71Sopenharmony_ci> 134e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 135e41f4b71Sopenharmony_ci> 跨应用访问dataAbility,对端应用需配置关联启动。 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci**参数:** 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 145e41f4b71Sopenharmony_ci| ---- | ------ | ---- | ------------ | 146e41f4b71Sopenharmony_ci| uri | string | 是 | 表示要打开的文件的路径。 | 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci**返回值:** 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci| 类型 | 说明 | 151e41f4b71Sopenharmony_ci| ----------------- | ------------------------------- | 152e41f4b71Sopenharmony_ci| [DataAbilityHelper](js-apis-inner-ability-dataAbilityHelper.md) | 用来协助其他Ability访问DataAbility的工具类。 | 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci**示例:** 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 157e41f4b71Sopenharmony_ci```ts 158e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_cilet dataAbilityHelper = featureAbility.acquireDataAbilityHelper( 161e41f4b71Sopenharmony_ci 'dataability:///com.example.DataAbility' 162e41f4b71Sopenharmony_ci); 163e41f4b71Sopenharmony_ci``` 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci## featureAbility.startAbilityForResult<sup>7+</sup> 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_cistartAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>): void 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci启动一个Ability。使用callback异步回调。启动Ability后,存在如下几种情况: 170e41f4b71Sopenharmony_ci - 正常情况下可通过调用[terminateSelfWithResult](#featureabilityterminateselfwithresult7)接口使之终止并且返回结果给调用方。 171e41f4b71Sopenharmony_ci - 异常情况下比如杀死Ability会返回异常信息给调用方, 异常信息中resultCode为-1。 172e41f4b71Sopenharmony_ci - 如果被启动的Ability模式是单实例模式, 不同应用多次调用该接口启动这个Ability,当这个Ability调用[terminateSelfWithResult](#featureabilityterminateselfwithresult7)接口使之终止时,只将正常结果返回给最后一个调用方, 其它调用方返回异常信息, 异常信息中resultCode为-1。 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci> **说明:** 175e41f4b71Sopenharmony_ci> 176e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci**参数:** 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 186e41f4b71Sopenharmony_ci| --------- | ---------------------------------------- | ---- | -------------- | 187e41f4b71Sopenharmony_ci| parameter | [StartAbilityParameter](js-apis-inner-ability-startAbilityParameter.md) | 是 | 表示被启动的Ability。 | 188e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | 是 | 回调函数。当启动Ability成功,err为undefined,data为ability的启动结果;否则为错误对象。 | 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci**示例:** 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 193e41f4b71Sopenharmony_ci```ts 194e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_cifeatureAbility.startAbilityForResult( 197e41f4b71Sopenharmony_ci { 198e41f4b71Sopenharmony_ci want: 199e41f4b71Sopenharmony_ci { 200e41f4b71Sopenharmony_ci action: 'ohos.want.action.home', 201e41f4b71Sopenharmony_ci entities: ['entity.system.home'], 202e41f4b71Sopenharmony_ci type: 'MIMETYPE', 203e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 204e41f4b71Sopenharmony_ci deviceId: '', 205e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 206e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 207e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 208e41f4b71Sopenharmony_ci uri: '' 209e41f4b71Sopenharmony_ci }, 210e41f4b71Sopenharmony_ci }, 211e41f4b71Sopenharmony_ci (error, data) => { 212e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 213e41f4b71Sopenharmony_ci console.error(`startAbilityForResult fail, error: ${JSON.stringify(error)}`); 214e41f4b71Sopenharmony_ci } else { 215e41f4b71Sopenharmony_ci console.log(`startAbilityForResult success, data: ${JSON.stringify(data)}`); 216e41f4b71Sopenharmony_ci } 217e41f4b71Sopenharmony_ci } 218e41f4b71Sopenharmony_ci); 219e41f4b71Sopenharmony_ci``` 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci## featureAbility.startAbilityForResult<sup>7+</sup> 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_cistartAbilityForResult(parameter: StartAbilityParameter): Promise\<AbilityResult> 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci启动一个Ability。使用Promise异步回调。启动Ability后,存在如下几种情况: 226e41f4b71Sopenharmony_ci - 正常情况下可通过调用[terminateSelfWithResult](#featureabilityterminateselfwithresult7)接口使之终止并且返回结果给调用方。 227e41f4b71Sopenharmony_ci - 异常情况下比如杀死Ability会返回异常信息给调用方, 异常信息中resultCode为-1。 228e41f4b71Sopenharmony_ci - 如果被启动的Ability模式是单实例模式, 不同应用多次调用该接口启动这个Ability,当这个Ability调用[terminateSelfWithResult](#featureabilityterminateselfwithresult7)接口使之终止时,只将正常结果返回给最后一个调用方, 其它调用方返回异常信息, 异常信息中resultCode为-1。 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci> **说明:** 231e41f4b71Sopenharmony_ci> 232e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 237e41f4b71Sopenharmony_ci**参数:** 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 240e41f4b71Sopenharmony_ci| --------- | ---------------------------------------- | ---- | ------------- | 241e41f4b71Sopenharmony_ci| parameter | [StartAbilityParameter](js-apis-inner-ability-startAbilityParameter.md) | 是 | 表示被启动的Ability。 | 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci**返回值:** 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci| 类型 | 说明 | 246e41f4b71Sopenharmony_ci| ---------------------------------------- | ------- | 247e41f4b71Sopenharmony_ci| Promise\<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise对象,返回启动Ability的结果。 | 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci**示例:** 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 252e41f4b71Sopenharmony_ci```ts 253e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_cifeatureAbility.startAbilityForResult( 256e41f4b71Sopenharmony_ci { 257e41f4b71Sopenharmony_ci want: 258e41f4b71Sopenharmony_ci { 259e41f4b71Sopenharmony_ci action: 'ohos.want.action.home', 260e41f4b71Sopenharmony_ci entities: ['entity.system.home'], 261e41f4b71Sopenharmony_ci type: 'MIMETYPE', 262e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 263e41f4b71Sopenharmony_ci deviceId: '', 264e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 265e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 266e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 267e41f4b71Sopenharmony_ci uri: '', 268e41f4b71Sopenharmony_ci parameters: 269e41f4b71Sopenharmony_ci { 270e41f4b71Sopenharmony_ci mykey0: 1111, 271e41f4b71Sopenharmony_ci mykey1: [1, 2, 3], 272e41f4b71Sopenharmony_ci mykey2: '[1, 2, 3]', 273e41f4b71Sopenharmony_ci mykey3: 'xxxxxxxxxxxxxxxxxxxxxx', 274e41f4b71Sopenharmony_ci mykey4: [1, 15], 275e41f4b71Sopenharmony_ci mykey5: [false, true, false], 276e41f4b71Sopenharmony_ci mykey6: ['aaaaaa', 'bbbbb', 'ccccccccccc'], 277e41f4b71Sopenharmony_ci mykey7: true, 278e41f4b71Sopenharmony_ci }, 279e41f4b71Sopenharmony_ci }, 280e41f4b71Sopenharmony_ci }, 281e41f4b71Sopenharmony_ci).then((data) => { 282e41f4b71Sopenharmony_ci console.info(`startAbilityForResult data: ${JSON.stringify(data)}`); 283e41f4b71Sopenharmony_ci}); 284e41f4b71Sopenharmony_ci``` 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci## featureAbility.terminateSelfWithResult<sup>7+</sup> 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_citerminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>): void 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci停止当前的Ability。使用callback异步回调。如果该Ability是通过调用[startAbilityForResult](#featureabilitystartabilityforresult7)接口被拉起的,调用terminateSelfWithResult接口时会将结果返回给调用者,如果该Ability不是通过调用[startAbilityForResult](#featureabilitystartabilityforresult7)接口被拉起的,调用terminateSelfWithResult接口时不会有结果返回给调用者。 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci**参数:** 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 299e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | -------------- | 300e41f4b71Sopenharmony_ci| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 表示停止Ability之后返回的结果。 | 301e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当停止当前Ability成功,err为undefined,否则为错误对象。 | 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci**示例:** 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 306e41f4b71Sopenharmony_ci```ts 307e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_cifeatureAbility.terminateSelfWithResult( 310e41f4b71Sopenharmony_ci { 311e41f4b71Sopenharmony_ci resultCode: 1, 312e41f4b71Sopenharmony_ci want: 313e41f4b71Sopenharmony_ci { 314e41f4b71Sopenharmony_ci action: 'ohos.want.action.home', 315e41f4b71Sopenharmony_ci entities: ['entity.system.home'], 316e41f4b71Sopenharmony_ci type: 'MIMETYPE', 317e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 318e41f4b71Sopenharmony_ci deviceId: '', 319e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 320e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 321e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 322e41f4b71Sopenharmony_ci uri: '', 323e41f4b71Sopenharmony_ci parameters: { 324e41f4b71Sopenharmony_ci mykey0: 2222, 325e41f4b71Sopenharmony_ci mykey1: [1, 2, 3], 326e41f4b71Sopenharmony_ci mykey2: '[1, 2, 3]', 327e41f4b71Sopenharmony_ci mykey3: 'ssssssssssssssssssssssssss', 328e41f4b71Sopenharmony_ci mykey4: [1, 15], 329e41f4b71Sopenharmony_ci mykey5: [false, true, false], 330e41f4b71Sopenharmony_ci mykey6: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 331e41f4b71Sopenharmony_ci mykey7: true, 332e41f4b71Sopenharmony_ci } 333e41f4b71Sopenharmony_ci }, 334e41f4b71Sopenharmony_ci }, 335e41f4b71Sopenharmony_ci (error) => { 336e41f4b71Sopenharmony_ci console.error(`error: ${JSON.stringify(error)}`); 337e41f4b71Sopenharmony_ci } 338e41f4b71Sopenharmony_ci); 339e41f4b71Sopenharmony_ci``` 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci## featureAbility.terminateSelfWithResult<sup>7+</sup> 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_citerminateSelfWithResult(parameter: AbilityResult): Promise\<void> 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ci停止当前的Ability。使用Promise异步回调。如果该Ability是通过调用[startAbilityForResult](#featureabilitystartabilityforresult7)接口被拉起的,调用terminateSelfWithResult接口时会将结果返回给调用者,如果该Ability不是通过调用[startAbilityForResult](#featureabilitystartabilityforresult7)接口被拉起的,调用terminateSelfWithResult接口时不会有结果返回给调用者。 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci**参数:** 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 354e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ------------- | 355e41f4b71Sopenharmony_ci| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 表示停止Ability之后返回的结果。 | 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci**返回值:** 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_ci| 类型 | 说明 | 360e41f4b71Sopenharmony_ci| -------------- | --------------- | 361e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci**示例:** 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 366e41f4b71Sopenharmony_ci```ts 367e41f4b71Sopenharmony_ciimport { featureAbility, wantConstant } from '@kit.AbilityKit'; 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_cifeatureAbility.terminateSelfWithResult( 370e41f4b71Sopenharmony_ci { 371e41f4b71Sopenharmony_ci resultCode: 1, 372e41f4b71Sopenharmony_ci want: 373e41f4b71Sopenharmony_ci { 374e41f4b71Sopenharmony_ci action: 'ohos.want.action.home', 375e41f4b71Sopenharmony_ci entities: ['entity.system.home'], 376e41f4b71Sopenharmony_ci type: 'MIMETYPE', 377e41f4b71Sopenharmony_ci flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, 378e41f4b71Sopenharmony_ci deviceId: '', 379e41f4b71Sopenharmony_ci bundleName: 'com.example.myapplication', 380e41f4b71Sopenharmony_ci /* FA模型中abilityName由package + Ability name组成 */ 381e41f4b71Sopenharmony_ci abilityName: 'com.example.myapplication.secondAbility', 382e41f4b71Sopenharmony_ci uri:'', 383e41f4b71Sopenharmony_ci parameters: { 384e41f4b71Sopenharmony_ci mykey0: 2222, 385e41f4b71Sopenharmony_ci mykey1: [1, 2, 3], 386e41f4b71Sopenharmony_ci mykey2: '[1, 2, 3]', 387e41f4b71Sopenharmony_ci mykey3: 'ssssssssssssssssssssssssss', 388e41f4b71Sopenharmony_ci mykey4: [1, 15], 389e41f4b71Sopenharmony_ci mykey5: [false, true, false], 390e41f4b71Sopenharmony_ci mykey6: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 391e41f4b71Sopenharmony_ci mykey7: true, 392e41f4b71Sopenharmony_ci } 393e41f4b71Sopenharmony_ci }, 394e41f4b71Sopenharmony_ci } 395e41f4b71Sopenharmony_ci).then(() => { 396e41f4b71Sopenharmony_ci console.info('==========================>terminateSelfWithResult=======================>'); 397e41f4b71Sopenharmony_ci}); 398e41f4b71Sopenharmony_ci``` 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci## featureAbility.hasWindowFocus<sup>7+<sup> 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_cihasWindowFocus(callback: AsyncCallback\<boolean>): void 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci检查Ability的主窗口是否具有窗口焦点。使用callback异步回调。 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci**参数:** 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 413e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ---------------------------------------- | 414e41f4b71Sopenharmony_ci| callback | AsyncCallback\<boolean> | 是 |回调函数。<br>如果此Ability当前具有视窗焦点,则返回true;否则返回false。 | 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci**示例:** 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 419e41f4b71Sopenharmony_ci```ts 420e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_cifeatureAbility.hasWindowFocus((error, data) => { 423e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 424e41f4b71Sopenharmony_ci console.error(`hasWindowFocus fail, error: ${JSON.stringify(error)}`); 425e41f4b71Sopenharmony_ci } else { 426e41f4b71Sopenharmony_ci console.log(`hasWindowFocus success, data: ${JSON.stringify(data)}`); 427e41f4b71Sopenharmony_ci } 428e41f4b71Sopenharmony_ci}); 429e41f4b71Sopenharmony_ci``` 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci## featureAbility.hasWindowFocus<sup>7+<sup> 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_cihasWindowFocus(): Promise\<boolean> 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci检查Ability的主窗口是否具有窗口焦点。使用Promise异步回调。 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci**返回值:** 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci| 类型 | 说明 | 442e41f4b71Sopenharmony_ci| ----------------- | ------------------------------------- | 443e41f4b71Sopenharmony_ci| Promise\<boolean> | Promise对象。如果此Ability当前具有视窗焦点,则返回true;否则返回false。 | 444e41f4b71Sopenharmony_ci 445e41f4b71Sopenharmony_ci**示例:** 446e41f4b71Sopenharmony_ci 447e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 448e41f4b71Sopenharmony_ci```ts 449e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_cifeatureAbility.hasWindowFocus().then((data) => { 452e41f4b71Sopenharmony_ci console.info(`hasWindowFocus data: ${JSON.stringify(data)}`); 453e41f4b71Sopenharmony_ci}); 454e41f4b71Sopenharmony_ci``` 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci## featureAbility.getWant 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_cigetWant(callback: AsyncCallback\<Want>): void 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci获取要拉起的Ability对应的Want。使用callback异步回调。 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci**参数:** 467e41f4b71Sopenharmony_ci 468e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 469e41f4b71Sopenharmony_ci| -------- | ----------------------------- | ---- | --------- | 470e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[Want](js-apis-application-want.md)> | 是 | 回调函数,返回want信息。 | 471e41f4b71Sopenharmony_ci 472e41f4b71Sopenharmony_ci**示例:** 473e41f4b71Sopenharmony_ci 474e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 475e41f4b71Sopenharmony_ci```ts 476e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_cifeatureAbility.getWant((error, data) => { 479e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 480e41f4b71Sopenharmony_ci console.error(`getWant fail, error: ${JSON.stringify(error)}`); 481e41f4b71Sopenharmony_ci } else { 482e41f4b71Sopenharmony_ci console.log(`getWant success, data: ${JSON.stringify(data)}`); 483e41f4b71Sopenharmony_ci } 484e41f4b71Sopenharmony_ci}); 485e41f4b71Sopenharmony_ci``` 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci## featureAbility.getWant 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_cigetWant(): Promise\<Want> 490e41f4b71Sopenharmony_ci 491e41f4b71Sopenharmony_ci获取要拉起的Ability对应的Want。使用Promise异步回调。 492e41f4b71Sopenharmony_ci 493e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 494e41f4b71Sopenharmony_ci 495e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 496e41f4b71Sopenharmony_ci 497e41f4b71Sopenharmony_ci**返回值:** 498e41f4b71Sopenharmony_ci 499e41f4b71Sopenharmony_ci| 类型 | 说明 | 500e41f4b71Sopenharmony_ci| ----------------------- | ---------------- | 501e41f4b71Sopenharmony_ci| Promise\<[Want](js-apis-application-want.md)> | Promise对象,返回want信息。 | 502e41f4b71Sopenharmony_ci 503e41f4b71Sopenharmony_ci**示例:** 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 506e41f4b71Sopenharmony_ci```ts 507e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_cifeatureAbility.getWant().then((data) => { 510e41f4b71Sopenharmony_ci console.info(`getWant data: ${JSON.stringify(data)}`); 511e41f4b71Sopenharmony_ci}); 512e41f4b71Sopenharmony_ci``` 513e41f4b71Sopenharmony_ci 514e41f4b71Sopenharmony_ci## featureAbility.getContext 515e41f4b71Sopenharmony_ci 516e41f4b71Sopenharmony_cigetContext(): Context 517e41f4b71Sopenharmony_ci 518e41f4b71Sopenharmony_ci获取应用上下文。 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci**返回值:** 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci| 类型 | 说明 | 527e41f4b71Sopenharmony_ci| ------- | ---------- | 528e41f4b71Sopenharmony_ci| Context | 返回应用程序上下文。 | 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci**示例:** 531e41f4b71Sopenharmony_ci 532e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 533e41f4b71Sopenharmony_ci```ts 534e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 535e41f4b71Sopenharmony_ci 536e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 537e41f4b71Sopenharmony_cicontext.getBundleName((error, data) => { 538e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 539e41f4b71Sopenharmony_ci console.error(`getBundleName fail, error: ${JSON.stringify(error)}`); 540e41f4b71Sopenharmony_ci } else { 541e41f4b71Sopenharmony_ci console.log(`getBundleName success, data: ${JSON.stringify(data)}`); 542e41f4b71Sopenharmony_ci } 543e41f4b71Sopenharmony_ci}); 544e41f4b71Sopenharmony_ci``` 545e41f4b71Sopenharmony_ci 546e41f4b71Sopenharmony_ci## featureAbility.terminateSelf<sup>7+</sup> 547e41f4b71Sopenharmony_ci 548e41f4b71Sopenharmony_citerminateSelf(callback: AsyncCallback\<void>): void 549e41f4b71Sopenharmony_ci 550e41f4b71Sopenharmony_ci停止当前的Ability。使用callback异步回调。 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ci**参数:** 557e41f4b71Sopenharmony_ci 558e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 559e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------- | 560e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当停止当前的Ability成功,err为undefined,否则为错误对象。 | 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci**示例:** 563e41f4b71Sopenharmony_ci 564e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 565e41f4b71Sopenharmony_ci```ts 566e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 567e41f4b71Sopenharmony_ci 568e41f4b71Sopenharmony_cifeatureAbility.terminateSelf( 569e41f4b71Sopenharmony_ci (error) => { 570e41f4b71Sopenharmony_ci console.error(`error: ${JSON.stringify(error)}`); 571e41f4b71Sopenharmony_ci } 572e41f4b71Sopenharmony_ci) 573e41f4b71Sopenharmony_ci``` 574e41f4b71Sopenharmony_ci 575e41f4b71Sopenharmony_ci## featureAbility.terminateSelf<sup>7+</sup> 576e41f4b71Sopenharmony_ci 577e41f4b71Sopenharmony_citerminateSelf(): Promise\<void> 578e41f4b71Sopenharmony_ci 579e41f4b71Sopenharmony_ci停止当前的Ability。使用Promise异步回调。 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 582e41f4b71Sopenharmony_ci 583e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci**返回值:** 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci| 类型 | 说明 | 588e41f4b71Sopenharmony_ci| -------------- | ---------------- | 589e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**示例:** 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 594e41f4b71Sopenharmony_ci```ts 595e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_cifeatureAbility.terminateSelf().then(() => { 598e41f4b71Sopenharmony_ci console.info('==========================>terminateSelf=======================>'); 599e41f4b71Sopenharmony_ci}); 600e41f4b71Sopenharmony_ci``` 601e41f4b71Sopenharmony_ci 602e41f4b71Sopenharmony_ci## featureAbility.connectAbility<sup>7+</sup> 603e41f4b71Sopenharmony_ci 604e41f4b71Sopenharmony_ciconnectAbility(request: Want, options:ConnectOptions): number 605e41f4b71Sopenharmony_ci 606e41f4b71Sopenharmony_ci将当前Ability与指定的ServiceAbility进行连接。 607e41f4b71Sopenharmony_ci 608e41f4b71Sopenharmony_ci> **说明:** 609e41f4b71Sopenharmony_ci> 610e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(FA模型)](../../application-models/component-startup-rules-fa.md)。 611e41f4b71Sopenharmony_ci> 跨应用连接serviceAbility,对端应用需配置关联启动。 612e41f4b71Sopenharmony_ci 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 617e41f4b71Sopenharmony_ci 618e41f4b71Sopenharmony_ci**参数:** 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 621e41f4b71Sopenharmony_ci| ------- | -------------- | ---- | --------------------- | 622e41f4b71Sopenharmony_ci| request | [Want](js-apis-application-want.md) | 是 | 表示被连接的ServiceAbility。 | 623e41f4b71Sopenharmony_ci| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | 是 | 表示连接回调函数。 | 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_ci**返回值:** 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci| 类型 | 说明 | 628e41f4b71Sopenharmony_ci| ------ | -------------------- | 629e41f4b71Sopenharmony_ci| number | 连接的ServiceAbility的ID(ID从0开始自增,每连接成功一次ID加1)。 | 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci**示例:** 632e41f4b71Sopenharmony_ci 633e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 634e41f4b71Sopenharmony_ci```ts 635e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 636e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 637e41f4b71Sopenharmony_ci 638e41f4b71Sopenharmony_cilet connectId = featureAbility.connectAbility( 639e41f4b71Sopenharmony_ci { 640e41f4b71Sopenharmony_ci deviceId: '', 641e41f4b71Sopenharmony_ci bundleName: 'com.ix.ServiceAbility', 642e41f4b71Sopenharmony_ci abilityName: 'com.ix.ServiceAbility.ServiceAbilityA', 643e41f4b71Sopenharmony_ci }, 644e41f4b71Sopenharmony_ci { 645e41f4b71Sopenharmony_ci onConnect: (element, remote) => { 646e41f4b71Sopenharmony_ci console.log(`ConnectAbility onConnect remote is proxy: ${(remote instanceof rpc.RemoteProxy)}`); 647e41f4b71Sopenharmony_ci }, 648e41f4b71Sopenharmony_ci onDisconnect: (element) => { 649e41f4b71Sopenharmony_ci console.log(`ConnectAbility onDisconnect element.deviceId : ${element.deviceId}`) 650e41f4b71Sopenharmony_ci }, 651e41f4b71Sopenharmony_ci onFailed: (code) => { 652e41f4b71Sopenharmony_ci console.error(`featureAbilityTest ConnectAbility onFailed errCode : ${code}`) 653e41f4b71Sopenharmony_ci }, 654e41f4b71Sopenharmony_ci }, 655e41f4b71Sopenharmony_ci); 656e41f4b71Sopenharmony_ci``` 657e41f4b71Sopenharmony_ci 658e41f4b71Sopenharmony_ci## featureAbility.disconnectAbility<sup>7+</sup> 659e41f4b71Sopenharmony_ci 660e41f4b71Sopenharmony_cidisconnectAbility(connection: number, callback:AsyncCallback\<void>): void 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci断开与指定ServiceAbility的连接。使用callback异步回调。 663e41f4b71Sopenharmony_ci 664e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 665e41f4b71Sopenharmony_ci 666e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_ci**参数:** 669e41f4b71Sopenharmony_ci 670e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 671e41f4b71Sopenharmony_ci| ---------- | -------------------- | ---- | ----------------------- | 672e41f4b71Sopenharmony_ci| connection | number | 是 | 表示断开连接的ServiceAbility的ID。 | 673e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当断开与指定ServiceAbility的连接成功,err为undefined,否则为错误对象。 | 674e41f4b71Sopenharmony_ci 675e41f4b71Sopenharmony_ci**示例:** 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 678e41f4b71Sopenharmony_ci```ts 679e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 680e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 681e41f4b71Sopenharmony_ci 682e41f4b71Sopenharmony_cilet connectId = featureAbility.connectAbility( 683e41f4b71Sopenharmony_ci { 684e41f4b71Sopenharmony_ci bundleName: 'com.ix.ServiceAbility', 685e41f4b71Sopenharmony_ci abilityName: 'com.ix.ServiceAbility.ServiceAbilityA', 686e41f4b71Sopenharmony_ci }, 687e41f4b71Sopenharmony_ci { 688e41f4b71Sopenharmony_ci onConnect: (element, remote) => { 689e41f4b71Sopenharmony_ci console.log(`ConnectAbility onConnect remote is proxy: ${(remote instanceof rpc.RemoteProxy)}`); 690e41f4b71Sopenharmony_ci }, 691e41f4b71Sopenharmony_ci onDisconnect: (element) => { 692e41f4b71Sopenharmony_ci console.log(`ConnectAbility onDisconnect element.deviceId : ${element.deviceId}`); 693e41f4b71Sopenharmony_ci }, 694e41f4b71Sopenharmony_ci onFailed: (code) => { 695e41f4b71Sopenharmony_ci console.error(`featureAbilityTest ConnectAbility onFailed errCode : ${code}`); 696e41f4b71Sopenharmony_ci }, 697e41f4b71Sopenharmony_ci }, 698e41f4b71Sopenharmony_ci); 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_cifeatureAbility.disconnectAbility(connectId, (error) => { 701e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 702e41f4b71Sopenharmony_ci console.error(`disconnectAbility fail, connectId: ${connectId}, error: ${JSON.stringify(error)}`); 703e41f4b71Sopenharmony_ci } else { 704e41f4b71Sopenharmony_ci console.log(`disconnectAbility success, connectId: ${connectId}`); 705e41f4b71Sopenharmony_ci } 706e41f4b71Sopenharmony_ci}); 707e41f4b71Sopenharmony_ci``` 708e41f4b71Sopenharmony_ci 709e41f4b71Sopenharmony_ci## featureAbility.disconnectAbility<sup>7+</sup> 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_cidisconnectAbility(connection: number): Promise\<void> 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_ci断开与指定ServiceAbility的连接。使用Promise异步回调。 714e41f4b71Sopenharmony_ci 715e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 718e41f4b71Sopenharmony_ci 719e41f4b71Sopenharmony_ci**参数:** 720e41f4b71Sopenharmony_ci 721e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 722e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ----------------------- | 723e41f4b71Sopenharmony_ci| connection | number | 是 | 表示断开连接的ServiceAbility的ID。 | 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci**返回值:** 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci| 类型 | 说明 | 728e41f4b71Sopenharmony_ci| -------------- | --------------- | 729e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ci**示例:** 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 734e41f4b71Sopenharmony_ci```ts 735e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 736e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 737e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_cilet connectId = featureAbility.connectAbility( 740e41f4b71Sopenharmony_ci { 741e41f4b71Sopenharmony_ci bundleName: 'com.ix.ServiceAbility', 742e41f4b71Sopenharmony_ci abilityName: 'com.ix.ServiceAbility.ServiceAbilityA', 743e41f4b71Sopenharmony_ci }, 744e41f4b71Sopenharmony_ci { 745e41f4b71Sopenharmony_ci onConnect: (element, remote) => { 746e41f4b71Sopenharmony_ci console.log(`ConnectAbility onConnect remote is proxy: ${(remote instanceof rpc.RemoteProxy)}`); 747e41f4b71Sopenharmony_ci }, 748e41f4b71Sopenharmony_ci onDisconnect: (element) => { 749e41f4b71Sopenharmony_ci console.log(`ConnectAbility onDisconnect element.deviceId : ${element.deviceId}`); 750e41f4b71Sopenharmony_ci }, 751e41f4b71Sopenharmony_ci onFailed: (code) => { 752e41f4b71Sopenharmony_ci console.error(`featureAbilityTest ConnectAbility onFailed errCode : ${code}`); 753e41f4b71Sopenharmony_ci }, 754e41f4b71Sopenharmony_ci }, 755e41f4b71Sopenharmony_ci); 756e41f4b71Sopenharmony_ci 757e41f4b71Sopenharmony_cifeatureAbility.disconnectAbility(connectId).then(() => { 758e41f4b71Sopenharmony_ci console.log('disconnectAbility success') 759e41f4b71Sopenharmony_ci}).catch((error: BusinessError)=>{ 760e41f4b71Sopenharmony_ci console.error(`featureAbilityTest result errCode : ${error.code}`); 761e41f4b71Sopenharmony_ci}); 762e41f4b71Sopenharmony_ci``` 763e41f4b71Sopenharmony_ci 764e41f4b71Sopenharmony_ci 765e41f4b71Sopenharmony_ci## featureAbility.getWindow<sup>7+</sup> 766e41f4b71Sopenharmony_ci 767e41f4b71Sopenharmony_cigetWindow(callback: AsyncCallback\<window.Window>): void 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci获取当前Ability对应的窗口。使用callback异步回调。 770e41f4b71Sopenharmony_ci 771e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 772e41f4b71Sopenharmony_ci 773e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 774e41f4b71Sopenharmony_ci 775e41f4b71Sopenharmony_ci**参数:** 776e41f4b71Sopenharmony_ci 777e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 778e41f4b71Sopenharmony_ci| -------- | ----------------------------- | ---- | ----------------------------- | 779e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[window.Window](../apis-arkui/js-apis-window.md#window)> | 是 | 回调函数,返回当前Ability对应的窗口。 | 780e41f4b71Sopenharmony_ci 781e41f4b71Sopenharmony_ci**示例:** 782e41f4b71Sopenharmony_ci 783e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 784e41f4b71Sopenharmony_ci```ts 785e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 786e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 787e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 788e41f4b71Sopenharmony_ci 789e41f4b71Sopenharmony_cifeatureAbility.getWindow((error: BusinessError, data: window.Window) => { 790e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 791e41f4b71Sopenharmony_ci console.error(`getWindow fail, error: ${JSON.stringify(error)}`); 792e41f4b71Sopenharmony_ci } else { 793e41f4b71Sopenharmony_ci console.log(`getWindow success, data: ${typeof(data)}`); 794e41f4b71Sopenharmony_ci } 795e41f4b71Sopenharmony_ci}); 796e41f4b71Sopenharmony_ci``` 797e41f4b71Sopenharmony_ci 798e41f4b71Sopenharmony_ci## featureAbility.getWindow<sup>7+</sup> 799e41f4b71Sopenharmony_ci 800e41f4b71Sopenharmony_cigetWindow(): Promise\<window.Window> 801e41f4b71Sopenharmony_ci 802e41f4b71Sopenharmony_ci获取当前Ability对应的窗口。使用Promise异步回调。 803e41f4b71Sopenharmony_ci 804e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 805e41f4b71Sopenharmony_ci 806e41f4b71Sopenharmony_ci**说明**:本接口仅可在FA模型下使用。 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci**返回值:** 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ci| 类型 | 说明 | 811e41f4b71Sopenharmony_ci| ----------------------- | ----------------------------- | 812e41f4b71Sopenharmony_ci| Promise\<[window.Window](../apis-arkui/js-apis-window.md#window)> | Promise对象,返回当前Ability对应的窗口。 | 813e41f4b71Sopenharmony_ci 814e41f4b71Sopenharmony_ci**示例:** 815e41f4b71Sopenharmony_ci 816e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 817e41f4b71Sopenharmony_ci```ts 818e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 819e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 820e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 821e41f4b71Sopenharmony_ci 822e41f4b71Sopenharmony_cifeatureAbility.getWindow().then((data: window.Window) => { 823e41f4b71Sopenharmony_ci console.log(`getWindow success, data: ${typeof(data)}`); 824e41f4b71Sopenharmony_ci}).catch((error: BusinessError)=>{ 825e41f4b71Sopenharmony_ci console.error(`getWindow fail, error: ${JSON.stringify(error)}`); 826e41f4b71Sopenharmony_ci}); 827e41f4b71Sopenharmony_ci``` 828e41f4b71Sopenharmony_ci 829e41f4b71Sopenharmony_ci## AbilityWindowConfiguration<sup>7+</sup> 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci表示当前Ability对应的窗口配置项,使用时通过featureAbility.AbilityWindowConfiguration获取。 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ci**示例:** 834e41f4b71Sopenharmony_ci 835e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 836e41f4b71Sopenharmony_ci```ts 837e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 838e41f4b71Sopenharmony_ci 839e41f4b71Sopenharmony_cifeatureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED 840e41f4b71Sopenharmony_ci``` 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 845e41f4b71Sopenharmony_ci| ---------------------------------------- | ---- | ---------------------------------------- | 846e41f4b71Sopenharmony_ci| WINDOW_MODE_UNDEFINED | 0 | 未定义。 | 847e41f4b71Sopenharmony_ci| WINDOW_MODE_FULLSCREEN | 1 | 全屏。 | 848e41f4b71Sopenharmony_ci| WINDOW_MODE_SPLIT_PRIMARY | 100 | 屏幕如果是水平方向表示左分屏,屏幕如果是竖直方向表示上分屏。 | 849e41f4b71Sopenharmony_ci| WINDOW_MODE_SPLIT_SECONDARY | 101 | 屏幕如果是水平方向表示右分屏,屏幕如果是竖直方向表示下分屏。 | 850e41f4b71Sopenharmony_ci| WINDOW_MODE_FLOATING | 102 | 悬浮窗。 | 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_ci 853e41f4b71Sopenharmony_ci## AbilityStartSetting<sup>7+</sup> 854e41f4b71Sopenharmony_ci 855e41f4b71Sopenharmony_ci表示当前Ability对应的窗口属性,abilityStartSetting属性是一个定义为[key: string]: any的对象,key对应设定类型为:AbilityStartSetting枚举类型,value对应设定类型为:AbilityWindowConfiguration枚举类型。 856e41f4b71Sopenharmony_ci 857e41f4b71Sopenharmony_ci使用时通过featureAbility.AbilityStartSetting获取。 858e41f4b71Sopenharmony_ci 859e41f4b71Sopenharmony_ci**示例:** 860e41f4b71Sopenharmony_ci 861e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 862e41f4b71Sopenharmony_ci```ts 863e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 864e41f4b71Sopenharmony_ci 865e41f4b71Sopenharmony_cifeatureAbility.AbilityStartSetting.BOUNDS_KEY 866e41f4b71Sopenharmony_ci``` 867e41f4b71Sopenharmony_ci 868e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 871e41f4b71Sopenharmony_ci| ---------------------------- | --------------- | ---------------------------------------- | 872e41f4b71Sopenharmony_ci| BOUNDS_KEY | 'abilityBounds' | 窗口显示大小属性的参数名。 | 873e41f4b71Sopenharmony_ci| WINDOW_MODE_KEY | 'windowMode' | 窗口显示模式属性的参数名。| 874e41f4b71Sopenharmony_ci| DISPLAY_ID_KEY | 'displayId' | 窗口显示设备ID属性的参数名。 | 875e41f4b71Sopenharmony_ci 876e41f4b71Sopenharmony_ci## ErrorCode<sup>7+</sup> 877e41f4b71Sopenharmony_ci 878e41f4b71Sopenharmony_ci定义启动Ability时返回的错误码。 879e41f4b71Sopenharmony_ci 880e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 883e41f4b71Sopenharmony_ci| ------------------------------ | ---- | ---------------------------------------- | 884e41f4b71Sopenharmony_ci| NO_ERROR | 0 | 没有异常。 | 885e41f4b71Sopenharmony_ci| INVALID_PARAMETER | -1 | 无效的参数。 | 886e41f4b71Sopenharmony_ci| ABILITY_NOT_FOUND | -2 | 找不到ABILITY。 | 887e41f4b71Sopenharmony_ci| PERMISSION_DENY | -3 | 权限拒绝。 | 888e41f4b71Sopenharmony_ci 889e41f4b71Sopenharmony_ci## DataAbilityOperationType<sup>7+</sup> 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci表示数据的操作类型。DataAbility批量操作数据时可以通过该枚举值指定操作类型。 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel 894e41f4b71Sopenharmony_ci 895e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 896e41f4b71Sopenharmony_ci| ------------------------ | ---- | ---------------------------------------- | 897e41f4b71Sopenharmony_ci| TYPE_INSERT | 1 | 插入类型。 | 898e41f4b71Sopenharmony_ci| TYPE_UPDATE | 2 | 修改类型。 | 899e41f4b71Sopenharmony_ci| TYPE_DELETE | 3 | 删除类型。 | 900e41f4b71Sopenharmony_ci| TYPE_ASSERT | 4 | 声明类型。 |