• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.advertising.AdComponent (广告展示组件)
2
3<!--Kit: Ads Kit-->
4<!--Subsystem: Advertising-->
5<!--Owner: @SukiEvas-->
6<!--Designer: @zhansf1988-->
7<!--Tester: @hongmei_may-->
8<!--Adviser: @RayShih-->
9
10本模块提供展示广告的能力。
11
12> **说明:**<br/>
13> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```ts
18import { AdComponent } from '@kit.AdsKit';
19```
20
21## AdComponent
22
23```ts
24AdComponent({
25  ads: advertising.Advertisement[],
26  displayOptions: advertising.AdDisplayOptions,
27  interactionListener: advertising.AdInteractionListener,
28  @BuilderParam adRenderer?: () => void,
29  @Prop rollPlayState?: number
30})
31```
32
33**装饰器类型:** @Component
34
35**系统能力:** SystemCapability.Advertising.Ads
36
37**参数:**
38
39| 名称                        | 类型                                                                              | 必填 | 装饰器类型    | 说明                                                                                                                                                                                                  |
40|-----------------------------|-----------------------------------------------------------------------------------|------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
41| ads                         | advertising.[Advertisement](js-apis-advertising.md#advertisement)[]               | 是   | -             | 广告对象数组。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                            |
42| displayOptions              | advertising.[AdDisplayOptions](js-apis-advertising.md#addisplayoptions)           | 是   | -             | 广告展示参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                            |
43| interactionListener         | advertising.[AdInteractionListener](js-apis-advertising.md#adinteractionlistener) | 是   | -             | 广告状态变化回调。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                        |
44| adRenderer<sup>12+</sup>    | () => void                                                                        | 否   | @BuilderParam | 应用自渲染广告样式。<br>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。                                                                                                      |
45| rollPlayState<sup>15+</sup> | number                                                                            | 否   | @Prop         | 用于对外提供贴片广告的播放状态。设置为1表示播放,设置为2表示暂停。默认值为2。其他值被视为非法值,不会改变当前的播放状态。<br>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 |
46
47### build
48
49build(): void
50
51用于创建AdComponent对象的构造函数。
52
53**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
54
55**系统能力:** SystemCapability.Advertising.Ads
56
57## 示例
58
59该示例代码实现了广告的展示。
60
61```ts
62import { AdComponent, advertising } from '@kit.AdsKit';
63import { hilog } from '@kit.PerformanceAnalysisKit';
64
65@Entry
66@Component
67struct Index {
68  // 请求到的广告内容
69  private ads: advertising.Advertisement[] = [];
70  // 广告展示参数
71  private adDisplayOptions: advertising.AdDisplayOptions = {};
72
73  build() {
74    Column() {
75      AdComponent({
76        ads: this.ads,
77        displayOptions: this.adDisplayOptions,
78        interactionListener: {
79          onStatusChanged: (status: string, ad: advertising.Advertisement, data: string) => {
80            switch (status) {
81              case 'onAdOpen':
82                hilog.info(0x0000, 'testTag', 'onAdOpen');
83                break;
84              case 'onAdClick':
85                hilog.info(0x0000, 'testTag', 'onAdClick');
86                break;
87              case 'onAdClose':
88                hilog.info(0x0000, 'testTag', 'onAdClose');
89                break;
90            }
91          }
92        }
93      })
94        .width('100%')
95        .height('100%')
96    }
97    .width('100%')
98    .height('100%')
99  }
100}
101```