1# @ohos.app.ability.ChildProcessArgs (子进程参数) 2<!--Kit: Ability Kit--> 3<!--Subsystem: Ability--> 4<!--Owner: @SKY2001--> 5<!--Designer: @jsjzju--> 6<!--Tester: @lixueqing513--> 7<!--Adviser: @huipeizi--> 8 9传递到子进程的参数。[childProcessManager](js-apis-app-ability-childProcessManager.md)启动子进程时,可以通过ChildProcessArgs传递参数到子进程中。 10 11> **说明:** 12> 13> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14> 15> 本模块接口仅可在Stage模型下使用。 16 17## 导入模块 18 19```ts 20import { ChildProcessArgs } from '@kit.AbilityKit'; 21``` 22 23## ChildProcessArgs 24 25**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 26 27| 名称 | 类型 | 只读 | 可选 | 说明 | 28| ----------- | -------------------- | ---- | ------|------------------------------------------------------ | 29| entryParams | string | 否 | 是 |开发者自定义参数,透传到子进程中。可以在[ChildProcess.onStart](js-apis-app-ability-childProcess.md#childprocessonstart)方法中通过args.entryParams获取,entryParams支持传输的最大数据量为150KB。| 30| fds | Record<string, number> | 否 | 是 |文件描述符句柄集合,用于主进程和子进程通信,通过key-value的形式传入到子进程中,其中key为自定义字符串,value为文件描述符句柄。可以在[ChildProcess.onStart](js-apis-app-ability-childProcess.md#childprocessonstart)方法中通过args.fds获取fd句柄。<br/><b>说明:</b> <br>- fds最多支持16组,每组key的最大长度为20字符。<br>- 传递到子进程中句柄数字可能会变,但是指向的文件是一致的。| 31 32**示例:** 33 34示例中的context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 35 36```ts 37// 主进程中: 38import { common, ChildProcessArgs, childProcessManager } from '@kit.AbilityKit'; 39import { fileIo } from '@kit.CoreFileKit'; 40 41@Entry 42@Component 43struct Index { 44 build() { 45 Row() { 46 Column() { 47 Text('Click') 48 .fontSize(30) 49 .fontWeight(FontWeight.Bold) 50 .onClick(() => { 51 let context = this.getUIContext().getHostContext() as common.UIAbilityContext; 52 let path = context.filesDir + "/test.txt"; 53 let file = fileIo.openSync(path, fileIo.OpenMode.READ_ONLY | fileIo.OpenMode.CREATE); 54 let args: ChildProcessArgs = { 55 entryParams: "testParam", 56 fds: { 57 "key1": file.fd 58 } 59 }; 60 childProcessManager.startArkChildProcess("entry/./ets/process/DemoProcess.ets", args); 61 }); 62 } 63 .width('100%') 64 } 65 .height('100%') 66 } 67} 68``` 69 70```ts 71// 子进程中: 72import { ChildProcess, ChildProcessArgs } from '@kit.AbilityKit'; 73 74export default class DemoProcess extends ChildProcess { 75 76 onStart(args?: ChildProcessArgs) { 77 let entryParams = args?.entryParams; 78 let fd = args?.fds?.key1; 79 // .. 80 } 81} 82``` 83