yandexads-flutter
92 строки · 2.3 Кб
1import 'package:flutter_yandex_ads/pigeons/appopen.dart';
2import 'package:flutter_yandex_ads/yandex.dart';
3
4class YandexAdsAppOpenComponent {
5YandexAdsAppOpenComponent({
6Function? onAdLoaded,
7Function? onAdFailedToLoad,
8Function? onAdFailedToShow,
9Function? onImpression,
10Function? onAdClicked,
11Function? onAdShown,
12Function? onAdDismissed,
13required this.id,
14}) {
15appopen = YandexAdsAppOpen();
16
17FlutterYandexAds.addAppOpen(
18id,
19YandexAdsAppOpenCallbacks(
20onAdLoaded: onAdLoaded,
21onAdFailedToLoad: onAdFailedToLoad,
22onAdFailedToShow: onAdFailedToShow,
23onImpression: onImpression,
24onAdClicked: onAdClicked,
25onAdShown: onAdShown,
26onAdDismissed: onAdDismissed,
27));
28
29appopen.make(id);
30}
31
32final String id;
33late YandexAdsAppOpen appopen;
34}
35
36class FlutterYandexAdsAppOpenCallbacks implements FlutterYandexAdsAppOpen {
37@override
38void onAdClicked(String id) {
39final callbacks = FlutterYandexAds.getAppOpen(id);
40if (callbacks?.onAdClicked != null) {
41callbacks?.onAdClicked!();
42}
43}
44
45@override
46void onAdDismissed(String id) {
47final callbacks = FlutterYandexAds.getAppOpen(id);
48if (callbacks?.onAdDismissed != null) {
49callbacks?.onAdDismissed!();
50}
51}
52
53@override
54void onAdFailedToLoad(String id, AppOpenError err) {
55final callbacks = FlutterYandexAds.getAppOpen(id);
56if (callbacks?.onAdFailedToLoad != null) {
57callbacks?.onAdFailedToLoad!(err);
58}
59}
60
61@override
62void onAdFailedToShow(String id, AppOpenError err) {
63final callbacks = FlutterYandexAds.getAppOpen(id);
64if (callbacks?.onAdFailedToShow != null) {
65callbacks?.onAdFailedToShow!(err);
66}
67}
68
69@override
70void onAdLoaded(String id) {
71final callbacks = FlutterYandexAds.getAppOpen(id);
72if (callbacks?.onAdLoaded != null) {
73callbacks?.onAdLoaded!();
74}
75}
76
77@override
78void onAdShown(String id) {
79final callbacks = FlutterYandexAds.getAppOpen(id);
80if (callbacks?.onAdShown != null) {
81callbacks?.onAdShown!();
82}
83}
84
85@override
86void onImpression(String id, AppOpenImpression data) {
87final callbacks = FlutterYandexAds.getAppOpen(id);
88if (callbacks?.onImpression != null) {
89callbacks?.onImpression!();
90}
91}
92}
93