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