1# FeatureAbility模块(JS端SDK接口) 2 3#### 支持设备 4 5| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 | 6| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ | 7| FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 8| FeatureAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 9| FeatureAbility.acquireDataAbilityHelper(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 10| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 11| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 12| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 13| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 14| FeatureAbility.hasWindowFocus(callback: AsyncCallback\<boolean>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 15| FeatureAbility.hasWindowFocus() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 16| FeatureAbility.getWant(callback: AsyncCallback\<Want>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 17| FeatureAbility.getWant() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 18| FeatureAbility.getContext() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 19| FeatureAbility.terminateSelf(callback: AsyncCallback\<void>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 20| FeatureAbility.terminateSelf() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 21 22#### 权限列表 23 24ohos.permission.RUNNING_LOCK permission 25 26#### 使用限制 27 28FeatureAbility模块的接口只能在Page类型的Ability调用 29 30#### 导入模块 31 32``` 33import featureAbility from '@ohos.ability.featureAbility' 34``` 35 36#### FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>) 37 38* 接口说明 39 40 启动新的ability(callback形式) 41 42* startAbility参数描述 43 44| 名称 | 读写属性 | 类型 | 必填 | 描述 | 45| --------- | -------- | --------------------- | ---- | ------------------- | 46| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | 47| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | 48 49- StartAbilityParameter类型说明 50 51| 名称 | 读写属性 | 类型 | 必填 | 描述 | 52| ------------------- | -------- | ------ | ---- | ---------------------------------- | 53| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | 54| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | 55 56- want类型说明 57 58| 名称 | 读写属性 | 类型 | 必填 | 描述 | 59| ----------- | -------- | ------ | ---- | -------------------------- | 60| deviceId | 只读 | string | 否 | 设备id | 61| bundleName | 只读 | string | 否 | 捆绑包名称 | 62| abilityName | 只读 | string | 否 | ability 名字 | 63| uri | 只读 | string | 否 | 请求中URI的描述 | 64| type | 只读 | string | 否 | 此文件中类型的说明 | 65| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 66| action | 只读 | string | 否 | 需求中对操作的描述 | 67| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 68| entities | 只读 | string | 否 | 对象中实体的描述 | 69 70* flags类型说明 71 72 | 名称 | 参数 | 描述 | 73 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 74 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 75 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 76 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 77 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 78 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 79 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 80 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 81 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 82 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 83 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 84 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 85 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 86 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 87 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 88 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 89 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 90 91* 返回值 92 93 void 94 95* 示例 96 97```javascript 98import featureAbility from '@ohos.ability.featureAbility' 99featureAbility.startAbility( 100 { 101 want: 102 { 103 action: "", 104 entities: [""], 105 type: "", 106 flags: FLAG_AUTH_READ_URI_PERMISSION, 107 deviceId: "", 108 bundleName: "com.example.startability", 109 abilityName: "com.example.startability.MainAbility", 110 uri: "" 111 }, 112 }, 113 ); 114) 115``` 116 117 118 119#### FeatureAbility.startAbility(parameter: StartAbilityParameter) 120 121* 接口说明 122 123 启动新的ability(Promise形式) 124 125* startAbility参数描述 126 127| 名称 | 读写属性 | 类型 | 必填 | 描述 | 128| --------- | -------- | --------------------- | ---- | ------------------- | 129| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | 130 131- StartAbilityParameter类型说明 132 133| 名称 | 读写属性 | 类型 | 必填 | 描述 | 134| ------------------- | -------- | ------ | ---- | ---------------------------------- | 135| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | 136| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | 137 138- want类型说明 139 140| 名称 | 读写属性 | 类型 | 必填 | 描述 | 141| ----------- | -------- | ------ | ---- | -------------------------- | 142| deviceId | 只读 | string | 否 | 设备id | 143| bundleName | 只读 | string | 否 | 捆绑包名称 | 144| abilityName | 只读 | string | 否 | ability 名字 | 145| uri | 只读 | string | 否 | 请求中URI的描述 | 146| type | 只读 | string | 否 | 此文件中类型的说明 | 147| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 148| action | 只读 | string | 否 | 需求中对操作的描述 | 149| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 150| entities | 只读 | string | 否 | 对象中实体的描述 | 151 152* flags类型说明 153 154 | 名称 | 参数 | 描述 | 155 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 156 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 157 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 158 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 159 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 160 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 161 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 162 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 163 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 164 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 165 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 166 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 167 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 168 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 169 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 170 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 171 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 172 173* 返回值 174 175 void 176 177* 示例 178 179```javascript 180import featureAbility from '@ohos.ability.featureAbility' 181featureAbility.startAbility( 182 { 183 want: 184 { 185 action: "action.system.home", 186 entities: ["entity.system.home"], 187 type: "MIMETYPE", 188 flags: FLAG_AUTH_READ_URI_PERMISSION, 189 deviceId: "", 190 bundleName: "com.example.startability", 191 abilityName: "com.example.startability.MainAbility", 192 uri: "" 193 }, 194 } 195 ).then((void) => { 196 console.info("==========================>startAbility=======================>"); 197}); 198``` 199 200 201 202#### FeatureAbility.acquireDataAbilityHelper(uri: string) 203 204* 接口说明 205 206 获取dataAbilityHelper 207 208* 参数描述 209 210 | 名称 | 读写属性 | 类型 | 必填 | 描述 | 211 | ---- | -------- | ------ | ---- | ---------------------- | 212 | uri | 只读 | string | 是 | 指示要打开的文件的路径 | 213 214* 返回值 215 216 返回dataAbilityHelper 217 218* 示例 219 220```javascript 221import featureAbility from '@ohos.ability.featureAbility' 222featureAbility.acquireDataAbilityHelper( 223 "dataability:///com.exmaple.DataAbility" 224) 225``` 226 227 228 229#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>) 230 231* 接口说明 232 233 启动一个ability,并在该ability被销毁时返回执行结果(callback形式) 234 235* startAbility参数描述 236 237| 名称 | 读写属性 | 类型 | 必填 | 描述 | 238| --------- | -------- | ---------------------- | ---- | ------------------- | 239| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | 240| callback | 只读 | AsyncCallback\<number> | 是 | 被指定的回调方法 | 241 242- StartAbilityParameter类型说明 243 244| 名称 | 读写属性 | 类型 | 必填 | 描述 | 245| ------------------- | -------- | ------ | ---- | ---------------------------------- | 246| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | 247| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | 248 249- want类型说明 250 251| 名称 | 读写属性 | 类型 | 必填 | 描述 | 252| ----------- | -------- | ------ | ---- | -------------------------- | 253| deviceId | 只读 | string | 否 | 设备id | 254| bundleName | 只读 | string | 否 | 捆绑包名称 | 255| abilityName | 只读 | string | 否 | ability 名字 | 256| uri | 只读 | string | 否 | 请求中URI的描述 | 257| type | 只读 | string | 否 | 此文件中类型的说明 | 258| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 259| action | 只读 | string | 否 | 需求中对操作的描述 | 260| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 261| entities | 只读 | string | 否 | 对象中实体的描述 | 262 263* flags类型说明 264 265 | 名称 | 参数 | 描述 | 266 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 267 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 268 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 269 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 270 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 271 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 272 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 273 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 274 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 275 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 276 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 277 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 278 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 279 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 280 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 281 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 282 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 283 284* 返回值 285 286 返回{@link AbilityResult} 287 288* 示例 289 290```javascript 291import featureAbility from '@ohos.ability.featureability'; 292featureAbility.startAbilityForResult( 293 { 294 want: 295 { 296 action: "action.system.home", 297 entities: ["entity.system.home"], 298 type: "MIMETYPE", 299 flags: FLAG_AUTH_READ_URI_PERMISSION, 300 deviceId: "", 301 bundleName: "com.example.featureabilitytest", 302 abilityName: "com.example.startabilityforresulttest1.MainAbility", 303 uri:"" 304 }, 305 }, 306) 307``` 308 309 310 311#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter) 312 313* 接口说明 314 315 启动一个ability,并在该ability被销毁时返回执行结果(Promise形式) 316 317* startAbility参数描述 318 319| 名称 | 读写属性 | 类型 | 必填 | 描述 | 320| --------- | -------- | --------------------- | ---- | ------------------- | 321| parameter | 只读 | StartAbilityParameter | 是 | 表示被启动的Ability | 322 323- StartAbilityParameter类型说明 324 325| 名称 | 读写属性 | 类型 | 必填 | 描述 | 326| ------------------- | -------- | ------ | ---- | ---------------------------------- | 327| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 | 328| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 | 329 330- want类型说明 331 332| 名称 | 读写属性 | 类型 | 必填 | 描述 | 333| ----------- | -------- | ------ | ---- | -------------------------- | 334| deviceId | 只读 | string | 否 | 设备id | 335| bundleName | 只读 | string | 否 | 捆绑包名称 | 336| abilityName | 只读 | string | 否 | ability 名字 | 337| uri | 只读 | string | 否 | 请求中URI的描述 | 338| type | 只读 | string | 否 | 此文件中类型的说明 | 339| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 340| action | 只读 | string | 否 | 需求中对操作的描述 | 341| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 342| entities | 只读 | string | 否 | 对象中实体的描述 | 343 344* flags类型说明 345 346 | 名称 | 参数 | 描述 | 347 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 348 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 349 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 350 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 351 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 352 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 353 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 354 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 355 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 356 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 357 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 358 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 359 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 360 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 361 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 362 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 363 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 364 365* 返回值 366 367 返回{@link AbilityResult} 368 369* 示例 370 371```javascript 372import featureAbility from '@ohos.ability.featureability'; 373featureAbility.startAbilityForResult( 374 { 375 want: 376 { 377 action: "action.system.home", 378 entities: ["entity.system.home"], 379 type: "MIMETYPE", 380 flags: FLAG_AUTH_READ_URI_PERMISSION, 381 deviceId: "", 382 bundleName: "com.example.featureabilitytest", 383 abilityName: "com.example.startabilityforresulttest2.MainAbility", 384 uri:"", 385 parameters: 386 { 387 mykey0: 1111, 388 mykey1: [1, 2, 3], 389 mykey2: "[1, 2, 3]", 390 mykey3: "xxxxxxxxxxxxxxxxxxxxxx", 391 mykey4: [1, 15], 392 mykey5: [false, true, false], 393 mykey6: ["aaaaaa", "bbbbb", "ccccccccccc"], 394 mykey7: true, 395 }, 396 }, 397 requestCode: 2, 398 }, 399).then((void) => { 400 console.info("==========================>startAbilityForResult=======================>"); 401}); 402``` 403 404 405 406#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>) 407 408* 接口说明 409 410 设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(callback形式) 411 412 413* startAbility参数描述 414 415| 名称 | 读写属性 | 类型 | 必填 | 描述 | 416| --------- | -------- | ------------- | ---- | ------------------- | 417| parameter | 只读 | AbilityResult | 是 | 表示被启动的Ability | 418| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | 419 420 421* AbilityResult类型说明 422 423| 名称 | 读写属性 | 类型 | 必填 | 描述 | 424| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ | 425| resultCode | 只读 | number | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) | 426| want | 只读 | Want | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 | 427 428- want类型说明 429 430| 名称 | 读写属性 | 类型 | 必填 | 描述 | 431| ----------- | -------- | ------ | ---- | -------------------------- | 432| deviceId | 只读 | string | 否 | 设备id | 433| bundleName | 只读 | string | 否 | 捆绑包名称 | 434| abilityName | 只读 | string | 否 | ability 名字 | 435| uri | 只读 | string | 否 | 请求中URI的描述 | 436| type | 只读 | string | 否 | 此文件中类型的说明 | 437| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 438| action | 只读 | string | 否 | 需求中对操作的描述 | 439| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 440| entities | 只读 | string | 否 | 对象中实体的描述 | 441 442* flags类型说明 443 444 | 名称 | 参数 | 描述 | 445 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 446 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 447 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 448 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 449 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 450 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 451 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 452 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 453 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 454 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 455 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 456 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 457 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 458 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 459 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 460 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 461 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 462 463* 返回值 464 465 void 466 467* 示例 468 469```javascript 470import featureAbility from '@ohos.ability.featureAbility' 471featureAbility.terminateSelfWithResult( 472 { 473 resultCode: 1, 474 want: 475 { 476 action: "action.system.home", 477 entities: ["entity.system.home"], 478 type: "MIMETYPE", 479 flags: FLAG_AUTH_READ_URI_PERMISSION, 480 deviceId: "", 481 bundleName: "com.example.featureabilitytest", 482 abilityName: "com.example.finishwithresulttest1.MainAbility", 483 uri:"", 484 parameters: { 485 mykey0: 2222, 486 mykey1: [1, 2, 3], 487 mykey2: "[1, 2, 3]", 488 mykey3: "ssssssssssssssssssssssssss", 489 mykey4: [1, 15], 490 mykey5: [false, true, false], 491 mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 492 mykey7: true, 493 } 494 }, 495 }, 496); 497``` 498 499 500 501#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult) 502 503* 接口说明 504 505 设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(Promise形式) 506 507* startAbility参数描述 508 509| 名称 | 读写属性 | 类型 | 必填 | 描述 | 510| --------- | -------- | ------------- | ---- | ------------------- | 511| parameter | 只读 | AbilityResult | 是 | 表示被启动的Ability | 512 513 514* AbilityResult类型说明 515 516| 名称 | 读写属性 | 类型 | 必填 | 描述 | 517| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ | 518| resultCode | 只读 | number | 是 | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) | 519| want | 只读 | Want | 否 | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 | 520 521- want类型说明 522 523| 名称 | 读写属性 | 类型 | 必填 | 描述 | 524| ----------- | -------- | ------ | ---- | -------------------------- | 525| deviceId | 只读 | string | 否 | 设备id | 526| bundleName | 只读 | string | 否 | 捆绑包名称 | 527| abilityName | 只读 | string | 否 | ability 名字 | 528| uri | 只读 | string | 否 | 请求中URI的描述 | 529| type | 只读 | string | 否 | 此文件中类型的说明 | 530| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 | 531| action | 只读 | string | 否 | 需求中对操作的描述 | 532| parameters | 只读 | string | 否 | Want中WantParams对象的描述 | 533| entities | 只读 | string | 否 | 对象中实体的描述 | 534 535* flags类型说明 536 537 | 名称 | 参数 | 描述 | 538 | ------------------------------------ | ---------- | ------------------------------------------------------------ | 539 | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 | 540 | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 | 541 | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 | 542 | FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 | 543 | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS | 544 | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 | 545 | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 | 546 | FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 | 547 | FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 | 548 | FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 | 549 | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 | 550 | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 | 551 | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 | 552 | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 | 553 | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | 554 | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | 555 556* 返回值 557 558 void 559 560* 示例 561 562```javascript 563import featureAbility from '@ohos.ability.featureability'; 564featureAbility.terminateSelfWithResult( 565 { 566 resultCode: 1, 567 want: 568 { 569 action: "action.system.home", 570 entities: ["entity.system.home"], 571 type: "MIMETYPE", 572 flags: FLAG_AUTH_READ_URI_PERMISSION, 573 deviceId: "", 574 bundleName: "com.example.featureabilitytest", 575 abilityName: "com.example.finishwithresulttest1.MainAbility", 576 uri:"", 577 parameters: { 578 mykey0: 2222, 579 mykey1: [1, 2, 3], 580 mykey2: "[1, 2, 3]", 581 mykey3: "ssssssssssssssssssssssssss", 582 mykey4: [1, 15], 583 mykey5: [false, true, false], 584 mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 585 mykey7: true, 586 } 587 }, 588 } 589).then((void) => { 590 console.info("==========================>terminateSelfWithResult=======================>"); 591}); 592``` 593 594 595 596#### FeatureAbility.hasWindowFocus(callback: AsyncCallback\<boolean>) 597 598* 接口说明 599 600 检查ability的主窗口是否具有窗口焦点(callback形式) 601 602* 参数描述 603 604| 名称 | 读写属性 | 类型 | 必填 | 描述 | 605| -------- | -------- | ----------------------- | ---- | ---------------- | 606| callback | 只读 | AsyncCallback\<boolean> | 是 | 被指定的回调方法 | 607 608* 返回值 609 610 如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false} 611 612* 示例 613 614```javascript 615import featureAbility from '@ohos.ability.featureability'; 616featureAbility.hasWindowFocus() 617``` 618 619 620 621#### FeatureAbility.hasWindowFocus() 622 623* 接口说明 624 625 检查ability的主窗口是否具有窗口焦点(Promise形式) 626 627* 参数描述 628 629 Null 630 631* 返回值 632 633 如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false} 634 635* 示例 636 637```javascript 638import featureAbility from '@ohos.ability.featureability'; 639featureAbility.hasWindowFocus().then((void) => { 640 console.info("==========================>hasWindowFocus=======================>"); 641}); 642``` 643 644 645 646#### FeatureAbility.getWant(callback: AsyncCallback\<Want>) 647 648* 接口说明 649 650 获取从ability发送的want(callback形式) 651 652* 参数描述 653 654| 名称 | 读写属性 | 类型 | 必填 | 描述 | 655| -------- | -------- | -------------------- | ---- | ---------------- | 656| callback | 只读 | AsyncCallback\<Want> | 是 | 被指定的回调方法 | 657 658* 返回值 659 660 void 661 662* 示例 663 664```javascript 665import featureAbility from '@ohos.ability.featureability'; 666featureAbility.getWant() 667``` 668 669 670 671#### FeatureAbility.getWant() 672 673* 接口说明 674 675 获取从ability发送的want(Promise形式) 676 677* 参数描述 678 679 Null 680 681* 返回值 682 683 void 684 685* 示例 686 687```javascript 688import featureAbility from '@ohos.ability.featureability'; 689featureAbility.getWant().then((void) => { 690 console.info("==========================>getWantCallBack=======================>"); 691}); 692``` 693 694 695 696#### FeatureAbility.getContext() 697 698* 接口说明 699 700 获取应用程序上下文 701 702* 返回值 703 704 返回应用程序上下文 705 706* 示例 707 708```javascript 709import featureAbility from '@ohos.ability.featureability'; 710var context = featureAbility.getContext() 711context.getBundleName() 712``` 713 714 715 716#### FeatureAbility.terminateSelf(callback: AsyncCallback\<void>) 717 718* 接口说明 719 720 设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(callback形式) 721 722* 参数描述 723 724| 名称 | 读写属性 | 类型 | 必填 | 描述 | 725| -------- | -------- | -------------------- | ---- | ---------------- | 726| callback | 只读 | AsyncCallback\<void> | 是 | 被指定的回调方法 | 727 728* 返回值 729 730 void 731 732* 示例 733 734```javascript 735import featureAbility from '@ohos.ability.featureability'; 736featureAbility.terminateSelf() 737``` 738 739 740 741#### FeatureAbility.terminateSelf() 742 743* 接口说明 744 745 设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(Promise形式) 746 747* 参数描述 748 749 Null 750 751* 返回值 752 753* void 754 755* 示例 756 757```javascript 758import featureAbility from '@ohos.ability.featureability'; 759featureAbility.terminateSelf().then((void) => { console.info("==========================>terminateSelfCallBack=======================>"); 760}); 761``` 762 763#### FeatureAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number 764 765* 接口说明 766 767 将当前ability连接到指定ServiceAbility(callback形式) 768 769* connectAbility参数描述 770 771| 名称 | 读写属性 | 类型 | 必填 | 描述 | 772| ------- | -------- | -------------- | ---- | -------------------------- | 773| request | 只读 | Want | 是 | 表示被连接的ServiceAbility | 774| options | 只读 | ConnectOptions | 是 | 被指定的回调方法 | 775 776- ConnectOptions类型说明 777 778| 名称 | 读写属性 | 类型 | 必填 | 描述 | 779| ------------ | -------- | -------- | ---- | ---------------------------------- | 780| onConnect | 只读 | function | 是 | 连接成功时的回调函数 | 781| onDisconnect | 只读 | function | 是 | 连接失败时的回调函数 | 782| onFailed | 只读 | function | 是 | ConnectAbility调用失败时的回调函数 | 783 784* 返回值 785 786 连接的ServiceAbilityID。 787 788* 示例 789 790```javascript 791import featureAbility from '@ohos.ability.featureAbility' 792var mRemote; 793var connId; 794function onConnectCallback(element, remote){ 795 mRemote = remote; 796 console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); 797} 798function onDisconnectCallback(element){ 799 console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) 800} 801function onFailedCallback(code){ 802 console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) 803} 804var connId = featureAbility.connectAbility( 805 { 806 bundleName: "com.ix.ServiceAbility", 807 abilityName: "ServiceAbilityA", 808 }, 809 { 810 onConnect: onConnectCallback, 811 onDisconnect: onDisconnectCallback, 812 onFailed: onFailedCallback, 813 }, 814); 815``` 816 817#### FeatureAbility.disconnectAbility(connection: number, callback:AsyncCallback<void>): void 818 819* 接口说明 820 821 断开与指定ServiceAbility的连接(callback形式) 822 823* disconnectAbility参数描述 824 825| 名称 | 读写属性 | 类型 | 必填 | 描述 | 826| ---------- | -------- | ------------- | ---- | ------------------------------ | 827| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | 828| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 | 829 830* 返回值 831 832 无 833 834* 示例 835 836```javascript 837import featureAbility from '@ohos.ability.featureAbility' 838var mRemote; 839var connId; 840function onConnectCallback(element, remote){ 841 mRemote = remote; 842 console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); 843} 844function onDisconnectCallback(element){ 845 console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) 846} 847function onFailedCallback(code){ 848 console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) 849} 850var connId = featureAbility.connectAbility( 851 { 852 bundleName: "com.ix.ServiceAbility", 853 abilityName: "ServiceAbilityA", 854 }, 855 { 856 onConnect: onConnectCallback, 857 onDisconnect: onDisconnectCallback, 858 onFailed: onFailedCallback, 859 }, 860); 861var result = featureAbility.disconnectAbility(connId, 862 (error,data) => { 863 console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data) 864 }, 865); 866``` 867 868#### FeatureAbility.disconnectAbility(connection: number): Promise<void>; 869 870* 接口说明 871 872 断开与指定ServiceAbility的连接(promise形式) 873 874* disconnectAbility参数描述 875 876| 名称 | 读写属性 | 类型 | 必填 | 描述 | 877| ---------- | -------- | ------ | ---- | ------------------------------ | 878| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID | 879 880* 返回值 881 882 无 883 884* 示例 885 886```javascript 887import featureAbility from '@ohos.ability.featureAbility' 888var mRemote; 889var connId; 890function onConnectCallback(element, remote){ 891 mRemote = remote; 892 console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); 893} 894function onDisconnectCallback(element){ 895 console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) 896} 897function onFailedCallback(code){ 898 console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) 899} 900var connId = featureAbility.connectAbility( 901 { 902 bundleName: "com.ix.ServiceAbility", 903 abilityName: "ServiceAbilityA", 904 }, 905 { 906 onConnect: onConnectCallback, 907 onDisconnect: onDisconnectCallback, 908 onFailed: onFailedCallback, 909 }, 910); 911var result = await featureAbility.disconnectAbility(connId); 912``` 913 914