目录

@ohos.app.ability.scriptManager (脚本管理)

本模块提供管理和组织脚本信息的能力,支持应用的ArkTS脚本执行结果上报。

起始版本: 26.0.0

导入模块

import { scriptManager } from '@kit.AbilityKit';

ExecuteResult

ArkTS脚本执行结果。

起始版本: 26.0.0

元服务API:从API版本26.0.0开始,该接口支持在元服务中使用。

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

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

名称 类型 只读 可选 说明
code number 否 否 表示结果码。取值范围为整数,默认值为0。
result Record<string, Object> 否 是 表示脚本执行结果。
uris Array<string> 否 是 表示需要授权给调用方的URI列表。
flags number 否 是

表示URI的读写权限,与Want的flags字段含义一致。取值范围如下:

- wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读权限。

- wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写权限。

- 以上两个标志的组合:同时授权读写权限。

ArkTSScriptInfo

应用的ArkTS脚本入口函数的第一个参数,用于接收系统传递的脚本上下文信息。

起始版本: 26.0.0

元服务API:从API版本26.0.0开始,该接口支持在元服务中使用。

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

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

名称 类型 只读 可选 说明
requestCode string 是 否 用于标识当前操作的请求码。
context Context 是 否 绑定的Ability上下文。

scriptManager.completeArkTSScriptInApp

completeArkTSScriptInApp(context: Context, requestCode: string, result: ExecuteResult): Promise<void>

完成应用的ArkTS脚本执行,上报执行结果。使用Promise异步回调。

起始版本: 26.0.0

元服务API:从API版本26.0.0开始,该接口支持在元服务中使用。

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

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

参数:

参数名 类型 必填 说明
context Context 是 Ability上下文,用于临时文件授权。
requestCode string 是 用于标识当前操作的请求码。
result ExecuteResult 是 ArkTS脚本的执行结果。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码详细介绍请参考元能力子系统错误码。

错误码ID 错误信息
16000020 The context is not ability context.
16000003 The specified ID does not exist.
16000050 Internal error. Possible causes: 1. Connect to system service failed; 2. Send restart message to system service failed; 3. System service failed to communicate with dependency module.

示例:

import { scriptManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class TotalTimeSkill {
  // 入口函数第一个参数必须为scriptManager.ArkTSScriptInfo,后续参数为开发者自定义
  public async RemoteTotalTimeModel(arkTSScriptInfo: scriptManager.ArkTSScriptInfo, ...argv: string[]): Promise<void> {
    // 参数解析
    const ruleId = argv[1] ? parseInt(argv[1], 10) : null;
    const childInfoStr = argv[2] || '{}';
    // 实现用户功能 输出结果data
    let result: scriptManager.ExecuteResult = {
      code: 0,
      result: {
        'data': 'resultData'
      } as Record<string, Object>,
    };

    scriptManager.completeArkTSScriptInApp(
      arkTSScriptInfo.context, arkTSScriptInfo.requestCode, result)
      .then(() => {
        console.info('completeArkTSScriptInApp succeeded');
      })
      .catch((err: BusinessError) => {
        console.error(`completeArkTSScriptInApp failed, code: ${err.code}, message: ${err.message}`);
      });
  }
}