• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ContentSlot
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @sd-wu-->
5<!--Designer: @sunbees-->
6<!--Tester: @liuli0427-->
7<!--Adviser: @HelloCrease-->
8
9用于渲染并管理Native层使用C-API创建的组件。
10
11支持混合模式开发,当容器是ArkTS组件,子组件在Native侧创建时,推荐使用ContentSlot占位组件。
12
13> **说明:**
14>
15> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
16
17## 接口
18
19ContentSlot(content: Content)
20
21当内容添加到占位符组件时调用。
22
23**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
24
25**系统能力:** SystemCapability.ArkUI.ArkUI.Full
26
27**参数:**
28
29| 参数名  | 类型 | 必填 | 说明                                                     |
30| ------- | -------- | ---- | ------------------------------------------------------------ |
31| content | [Content](#content)  | 是   | Content作为ContentSlot的管理器,通过Native侧提供的接口,可以注册并触发ContentSlot的上下树事件回调以及管理ContentSlot的子组件。 |
32
33## Content
34
35type Content = Content
36
37定义ComponentContent和NodeContent的基类。
38
39**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
40
41**系统能力:** SystemCapability.ArkUI.ArkUI.Full
42
43| 类型 | 说明                                                     |
44| ---- | ------------------------------------------------------------ |
45| [Content](../js-apis-arkui-Content.md)   | 定义ComponentContent和NodeContent的基类。 |
46
47## 示例
48
49下面的示例展示了ContentSlot的基本用法。
50
51```ts
52import { nativeNode } from 'libNativeNode.so'; // 开发者自己实现的so
53import { NodeContent } from '@kit.ArkUI';
54
55@Entry
56@Component
57struct Parent {
58  private nodeContent: Content = new NodeContent();
59
60  aboutToAppear() {
61    // 通过C-API创建节点,并添加到管理器nodeContent上
62    nativeNode.createNativeNode(this.nodeContent);
63  }
64
65  build() {
66    Column() {
67      // 显示nodeContent管理器里存放的Native侧的组件
68      ContentSlot(this.nodeContent)
69    }
70  }
71}
72```
73
74上述代码中so的实现可参考[Native XComponent](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/NdkXComponent)75
76