ShowBannerAd.ets 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { advertising, AutoAdComponent } from '@kit.AdsKit';
  2. import { BannerAd } from '../../ads/BannerAd';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. import { AdStatus } from '../../constants';
  5. @Component
  6. export struct ShowBannerAd {
  7. @State visibilityState: Visibility = Visibility.Hidden;
  8. private bannerAd = new BannerAd()
  9. build() {
  10. Column() {
  11. this.buildBannerView()
  12. }
  13. .borderRadius(4)
  14. // .backgroundColor($r('app.color.main_green'))
  15. .height(54)
  16. .width('100%')
  17. .clip(true)
  18. }
  19. @Builder
  20. buildBannerView() {
  21. Column() {
  22. AutoAdComponent({
  23. adParam: this.bannerAd.adParam,
  24. adOptions: this.bannerAd.adOptions,
  25. displayOptions: this.bannerAd.adDisplayOptions,
  26. interactionListener: {
  27. onStatusChanged: (status: string, ad: advertising.Advertisement, data: string) => {
  28. hilog.info(0x0000, 'testTag', '%{public}s', `status is ${status}`);
  29. switch (status) {
  30. case AdStatus.AD_OPEN:
  31. hilog.info(0x0000, 'testTag', '%{public}s', 'Status is onAdOpen');
  32. break;
  33. case AdStatus.AD_CLICKED:
  34. hilog.info(0x0000, 'testTag', '%{public}s', 'Status is onAdClick');
  35. break;
  36. case AdStatus.AD_CLOSED:
  37. hilog.info(0x0000, 'testTag', '%{public}s', 'Status is onAdClose');
  38. this.visibilityState = Visibility.None;
  39. break;
  40. case AdStatus.AD_LOAD:
  41. hilog.info(0x0000, 'testTag', '%{public}s', 'Status is onAdLoad');
  42. this.visibilityState = Visibility.Visible;
  43. break;
  44. case AdStatus.AD_FAIL:
  45. hilog.error(0x0000, 'testTag', '%{public}s', 'Status is onAdFail');
  46. this.visibilityState = Visibility.None;
  47. break;
  48. }
  49. }
  50. }
  51. })
  52. }
  53. .width('100%')
  54. .aspectRatio(this.bannerAd.ratio)
  55. .visibility(this.visibilityState)
  56. }
  57. }