文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
开发与测试开放能力API应用框架Ability Kit(程序框架服务)ArkTS APIStage模型能力的接口@ohos.app.ability.CompletionHandler (拉起应用结果的操作类)

@ohos.app.ability.CompletionHandler (拉起应用结果的操作类)

Phone20+PC/2in120+Tablet20+TV20+Wearable20+

CompletionHandler作为StartOptionsOpenLinkOptions的可选参数,用于处理拉起应用请求的结果。

说明
  • 本模块首批接口从API version 20 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

  • 本模块接口仅可在Stage模型下使用。

约束限制

当前支持使用该模块的接口包括:

导入模块

收起
自动换行
深色代码主题
复制
  1. import { CompletionHandler } from '@kit.AbilityKit';

CompletionHandler

Phone20+PC/2in120+Tablet20+TV20+Wearable20+

CompletionHandler提供了onRequestSuccessonRequestFailure两个回调函数,分别处理拉起应用成功和失败时的结果。

onRequestSuccess

Phone20+PC/2in120+Tablet20+TV20+Wearable20+

onRequestSuccess(elementName: ElementName, message: string): void

拉起应用成功时的回调函数,用于接收并处理拉起应用成功后的结果信息。

元服务API:从API version 20开始,该接口支持在元服务中使用。

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

参数:

展开
参数名 类型 必填 说明
elementName ElementName ElementName信息用于标识被拉起应用。通常,ElementName仅包含abilityName和bundleName。moduleName和deviceId信息是否存在取决于调用方是否传入。shortName和uri为空。
message string

成功拉起应用时的信息。该信息采用JSON格式,样式如下:

{

"errMsg": "Succeeded."

}

示例:

参见CompletionHandler使用

onRequestFailure

Phone20+PC/2in120+Tablet20+TV20+Wearable20+

onRequestFailure(elementName: ElementName, message: string): void

拉起应用失败时的回调函数,用于接收并处理拉起应用失败后的错误信息。

元服务API:从API version 20开始,该接口支持在元服务中使用。

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

参数:

展开
参数名 类型 必填 说明
elementName ElementName

ElementName信息用于标识被拉起应用。

- 通常,ElementName仅包含abilityName和bundleName。moduleName和deviceId信息是否存在取决于调用方是否传入。shortName和uri为空。

- 隐式启动失败时,无法获取ElementName信息。

message string

拉起应用失败时的信息。该信息采用JSON格式,样式如下:

{

"errMsg": "xxx"

}

其中,"xxx"的取值说明如下:

Failed to call <api-name>:表示调用接口出错。其中,<api-name>为具体的接口名,比如startAbility。

User refused redirection:表示用户关闭了应用跳转弹框。

User closed the implicit startup picker:表示用户关闭了隐式启动时的应用选择弹框。

User closed the app clone picker:表示用户关闭了分身应用选择弹框。

Free installation failed:表示免安装失败。

示例:

参见CompletionHandler使用

CompletionHandler使用

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, Want, StartOptions, CompletionHandler, bundleManager } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class EntryAbility extends UIAbility {
  4. onForeground() {
  5. let want: Want = {
  6. deviceId: '',
  7. bundleName: 'com.example.myapplication',
  8. abilityName: 'EntryAbility'
  9. };
  10. let completionHandler: CompletionHandler = {
  11. onRequestSuccess: (elementName: bundleManager.ElementName, message: string): void => {
  12. console.info(`${elementName.bundleName}-${elementName.moduleName}-${elementName.abilityName} start succeeded: ${message}`);
  13. },
  14. onRequestFailure: (elementName: bundleManager.ElementName, message: string): void => {
  15. console.error(`${elementName.bundleName}-${elementName.moduleName}-${elementName.abilityName} start failed: ${message}`);
  16. }
  17. };
  18. let options: StartOptions = {
  19. completionHandler: completionHandler
  20. };
  21. try {
  22. this.context.startAbility(want, options, (err: BusinessError) => {
  23. if (err.code) {
  24. // 处理业务逻辑错误
  25. console.error(`startAbility failed, code is ${err.code}, message is ${err.message}`);
  26. return;
  27. }
  28. // 执行正常业务
  29. console.info('startAbility succeed');
  30. });
  31. } catch (err) {
  32. // 处理入参错误异常
  33. let code = (err as BusinessError).code;
  34. let message = (err as BusinessError).message;
  35. console.error(`startAbility failed, code is ${code}, message is ${message}`);
  36. }
  37. }
  38. }
在 开发与测试 开放能力API 中进行搜索
请输入您想要搜索的关键词