TkRewardAd.ets 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { ATKSConfig } from 'anythink_network_ks';
  2. import { AT_LOCAL_EXTRA_KEY, ATAdError, ATAdInfo, ATRewardVideoAd } from 'anythink_sdk';
  3. import { YTLog } from '../../../../../../Index';
  4. import { ContextHelper } from '../../../utils/arkts/utils/ContextHelper';
  5. import { windowHelper } from '../../../utils/arkts/utils/WindowHelper';
  6. import { Singleton } from '../../../utils/ts/utils/SingleTon';
  7. export class TkRewardAd extends Singleton {
  8. private declare rewardAd: ATRewardVideoAd
  9. private isLoading: boolean = false
  10. private declare placementId: string
  11. init(placementId: string) {
  12. this.placementId = placementId
  13. this.rewardAd = new ATRewardVideoAd(this.placementId);
  14. this.rewardAd.setAdListener({
  15. onAdLoaded: (): void => {
  16. this.isLoading = false
  17. },
  18. onAdShow: (adInfo: ATAdInfo): void => {
  19. // this.rewardAd.loadAd({
  20. // context: ContextHelper.context,
  21. // localExtraMap: localExtraMap
  22. // });
  23. },
  24. onAdClick: (adInfo: ATAdInfo): void => {
  25. },
  26. onAdClose: (adInfo: ATAdInfo): void => {
  27. this.rewardAd.loadAd({
  28. context: ContextHelper.context,
  29. localExtraMap: localExtraMap
  30. });
  31. },
  32. onAdReward: (adInfo: ATAdInfo): void => {
  33. // this.rewardAd.loadAd({
  34. // context: ContextHelper.context,
  35. // localExtraMap: localExtraMap
  36. // });
  37. },
  38. onAdLoadFailed: (adError: ATAdError): void => {
  39. YTLog.error(adError)
  40. // IBestToast.show("广告加载失败")
  41. this.isLoading = false
  42. },
  43. onAdVideoPlayStart: (adInfo: ATAdInfo): void => {
  44. },
  45. onAdVideoPlayEnd: (adInfo: ATAdInfo): void => {
  46. this.rewardAd.loadAd({
  47. context: ContextHelper.context,
  48. localExtraMap: localExtraMap
  49. });
  50. },
  51. onAdVideoPlayFailed: (adError: ATAdError, adInfo?: ATAdInfo | undefined): void => {
  52. },
  53. onAdOtherStatus: (adInfo?: ATAdInfo): void => {
  54. }
  55. });
  56. const localExtraMap: Record<string, Object> = {};
  57. //支持透传以下参数给广告平台:比如userId,详见AT_LOCAL_EXTRA_KEY
  58. localExtraMap[AT_LOCAL_EXTRA_KEY.USER_ID] = "your user id";
  59. // 仅针对快手平台的广告配置
  60. localExtraMap[ATKSConfig.VIDEO_AUTO_PLAY_TYPE_KEY] = 3; //设置不自动播放
  61. this.rewardAd.loadAd({
  62. context: ContextHelper.context,
  63. localExtraMap: localExtraMap
  64. });
  65. this.isLoading = true
  66. return this.rewardAd
  67. }
  68. showRewardAd() {
  69. if (!this.isLoading) {
  70. if (this.rewardAd.isAdReady()) {
  71. this.rewardAd.showAd(ContextHelper.context, {
  72. windowStage: windowHelper.windowStage //在UIAbility的onWindowStageCreate(windowStage: window.WindowStage)中获取
  73. });
  74. }
  75. }
  76. }
  77. }
  78. export const tkRewardAd = TkRewardAd.getInstance();