cordova-admob-tomitank 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/admob.js CHANGED
@@ -1,22 +1,4 @@
1
1
  import { AdMob } from '.';
2
- import exec from 'cordova/exec';
3
- import * as cordova from 'cordova';
4
- import channel from 'cordova/channel';
5
- import { MobileAd, NativeActions } from './shared';
6
2
  var admob = new AdMob();
7
- function onMessageFromNative(event) {
8
- var data = event.data;
9
- if (data && data.adId) {
10
- data.ad = MobileAd.getAdById(data.adId);
11
- }
12
- cordova.fireDocumentEvent(event.type, data);
13
- }
14
- var feature = 'onAdMobPlusReady';
15
- channel.createSticky(feature);
16
- channel.waitForInitialization(feature);
17
- channel.onCordovaReady.subscribe(function () {
18
- exec(onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
19
- channel.initializationComplete(feature);
20
- });
21
3
  export default admob;
22
4
  //# sourceMappingURL=admob.js.map
package/esm/admob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"admob.js","sourceRoot":"","sources":["../src/www/admob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAC1B,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnD,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAE1B,SAAS,mBAAmB,CAAC,KAAU;IAC7B,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzC;IACD,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,IAAM,OAAO,GAAG,kBAAkB,CAAC;AACnC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAEvC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"admob.js","sourceRoot":"","sources":["../src/www/admob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE1B,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAE1B,eAAe,KAAK,CAAC"}
package/esm/api.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import BannerAd from './banner';
2
2
  import { Events } from './generated';
3
3
  export { execAsync, AdSizeType, Events, NativeActions } from './generated';
4
- /** @internal */
5
4
  export declare type MobileAdOptions = {
6
5
  id?: string;
7
6
  adUnitId: string;
@@ -12,20 +11,22 @@ export declare type MobileAdOptions = {
12
11
  declare type AdEventNames = Exclude<keyof typeof Events, 'ready'> extends infer K ? K extends keyof typeof Events ? typeof Events[K] extends `admob.${string}.${infer EventName}` ? EventName : never : never : never;
13
12
  declare type AdEventNamesByType<T extends MobileAd<any>> = T extends BannerAd ? Omit<AdEventNames, 'size' | 'sizechange'> : AdEventNames;
14
13
  /** @internal */
15
- export declare function start(): Promise<{
16
- version: string;
17
- }>;
18
- /** @internal */
19
14
  export declare class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
20
- static readonly type: string;
15
+ private static startPromise;
21
16
  private static allAds;
17
+ private static started;
18
+ private eventRemovers;
19
+ private _init;
22
20
  readonly id: string;
23
21
  protected readonly opts: T;
24
22
  private _created;
25
- private _init;
26
23
  constructor(opts: T);
27
24
  static getAdById(id: string): MobileAd<MobileAdOptions>;
28
25
  get adUnitId(): string;
26
+ static start(): Promise<{
27
+ version: string;
28
+ }>;
29
+ static cleanup(): void;
29
30
  on<EventNames extends AdEventNamesByType<this>>(eventName: EventNames, callback: (ev: Event) => any, useCapture?: boolean): () => void;
30
31
  protected isLoaded(): Promise<boolean>;
31
32
  protected load(): Promise<void>;
package/esm/api.js CHANGED
@@ -47,31 +47,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
47
47
  };
48
48
  import { execAsync, NativeActions } from './generated';
49
49
  export { execAsync, AdSizeType, Events, NativeActions } from './generated';
50
- var started = false;
51
- var startPromise = null;
52
- /** @internal */
53
- export function start() {
54
- return __awaiter(this, void 0, void 0, function () {
55
- var result;
56
- return __generator(this, function (_a) {
57
- switch (_a.label) {
58
- case 0:
59
- startPromise = execAsync(NativeActions.start);
60
- return [4 /*yield*/, startPromise];
61
- case 1:
62
- result = _a.sent();
63
- started = true;
64
- return [2 /*return*/, result];
65
- }
66
- });
67
- });
68
- }
69
50
  /** @internal */
70
51
  var MobileAd = /** @class */ (function () {
71
52
  function MobileAd(opts) {
72
53
  var _a;
73
- this._created = false;
54
+ this.eventRemovers = [];
74
55
  this._init = null;
56
+ this._created = false;
75
57
  this.opts = opts;
76
58
  this.id = (_a = opts.id) !== null && _a !== void 0 ? _a : opts.adUnitId;
77
59
  MobileAd.allAds[this.id] = this;
@@ -86,6 +68,30 @@ var MobileAd = /** @class */ (function () {
86
68
  enumerable: false,
87
69
  configurable: true
88
70
  });
71
+ MobileAd.start = function () {
72
+ return __awaiter(this, void 0, void 0, function () {
73
+ var result;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ if (!!this.startPromise) return [3 /*break*/, 2];
78
+ this.startPromise = execAsync(NativeActions.start);
79
+ return [4 /*yield*/, this.startPromise];
80
+ case 1:
81
+ result = _a.sent();
82
+ this.started = true;
83
+ return [2 /*return*/, result];
84
+ case 2: return [2 /*return*/, this.startPromise];
85
+ }
86
+ });
87
+ });
88
+ };
89
+ MobileAd.cleanup = function () {
90
+ Object.values(this.allAds).forEach(function (ad) { return ad.eventRemovers.forEach(function (remover) { return remover(); }); });
91
+ this.allAds = {};
92
+ this.started = false;
93
+ this.startPromise = null;
94
+ };
89
95
  MobileAd.prototype.on = function (eventName, callback, useCapture) {
90
96
  var _this = this;
91
97
  var type = "admob.ad.".concat(eventName.toLowerCase());
@@ -95,9 +101,14 @@ var MobileAd = /** @class */ (function () {
95
101
  }
96
102
  };
97
103
  document.addEventListener(type, listener, useCapture);
98
- return function () {
104
+ var removeFn = function () {
99
105
  document.removeEventListener(type, listener, useCapture);
106
+ var index = _this.eventRemovers.indexOf(removeFn);
107
+ if (index !== -1)
108
+ _this.eventRemovers.splice(index, 1);
100
109
  };
110
+ this.eventRemovers.push(removeFn);
111
+ return removeFn;
101
112
  };
102
113
  MobileAd.prototype.isLoaded = function () {
103
114
  return __awaiter(this, void 0, void 0, function () {
@@ -115,9 +126,7 @@ var MobileAd = /** @class */ (function () {
115
126
  return __awaiter(this, void 0, void 0, function () {
116
127
  return __generator(this, function (_a) {
117
128
  switch (_a.label) {
118
- case 0: return [4 /*yield*/, this.init()
119
- // TODO read `opts` in native code?
120
- ];
129
+ case 0: return [4 /*yield*/, this.init()];
121
130
  case 1:
122
131
  _a.sent();
123
132
  // TODO read `opts` in native code?
@@ -158,10 +167,8 @@ var MobileAd = /** @class */ (function () {
158
167
  case 0:
159
168
  if (this._created)
160
169
  return [2 /*return*/];
161
- if (!!started) return [3 /*break*/, 2];
162
- if (startPromise === null)
163
- start();
164
- return [4 /*yield*/, startPromise];
170
+ if (!!MobileAd.started) return [3 /*break*/, 2];
171
+ return [4 /*yield*/, MobileAd.start()];
165
172
  case 1:
166
173
  _b.sent();
167
174
  _b.label = 2;
@@ -181,8 +188,9 @@ var MobileAd = /** @class */ (function () {
181
188
  });
182
189
  });
183
190
  };
184
- MobileAd.type = '';
191
+ MobileAd.startPromise = null;
185
192
  MobileAd.allAds = {};
193
+ MobileAd.started = false;
186
194
  return MobileAd;
187
195
  }());
188
196
  export { MobileAd };
package/esm/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/www/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/www/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAU,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqB3E,gBAAgB;AAChB;IAUE,kBAAY,IAAO;;QANX,kBAAa,GAAoB,EAAE,CAAC;QACpC,UAAK,GAAwB,IAAI,CAAC;QAGlC,aAAQ,GAAG,KAAK,CAAC;QAGvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,MAAA,IAAI,CAAC,EAAE,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAClC,CAAC;IAEa,kBAAS,GAAvB,UAAwB,EAAU;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,sBAAW,8BAAQ;aAAnB;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5B,CAAC;;;OAAA;IAEmB,cAAK,GAAzB;;;;;;6BACM,CAAC,IAAI,CAAC,YAAY,EAAlB,wBAAkB;wBACpB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAiC,CAAC;wBACpE,qBAAM,IAAI,CAAC,YAAY,EAAA;;wBAAhC,MAAM,GAAG,SAAuB;wBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,sBAAO,MAAM,EAAC;4BAEhB,sBAAO,IAAI,CAAC,YAAY,EAAC;;;;KAC1B;IAEa,gBAAO,GAArB;QACE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,EAA9C,CAA8C,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,qBAAE,GAAT,UAAuD,SAAqB,EAAE,QAA4B,EAAE,UAAoB;QAAhI,iBAiBC;QAhBC,IAAM,IAAI,GAAG,mBAAY,SAAS,CAAC,WAAW,EAAE,CAAE,CAAC;QACnD,IAAM,QAAQ,GAAG,UAAC,GAA8B;YAC9C,IAAI,GAAG,CAAC,EAAE,KAAK,KAAI,EAAE;gBACnB,QAAQ,CAAC,GAAG,CAAC,CAAC;aACf;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtD,IAAM,QAAQ,GAAG;YACf,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzD,IAAM,KAAK,GAAG,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEe,2BAAQ,GAAxB;;;;4BACE,qBAAM,IAAI,CAAC,IAAI,EAAE,EAAA;;wBAAjB,SAAiB,CAAC;wBAClB,sBAAO,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAqB,EAAC;;;;KACnF;IAEe,uBAAI,GAApB;;;;4BACE,qBAAM,IAAI,CAAC,IAAI,EAAE,EAAA;;wBAAjB,SAAiB,CAAC;wBAClB,mCAAmC;wBACnC,qBAAM,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAM,IAAI,CAAC,IAAI,KAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAG,CAAC,EAAA;;wBADtE,mCAAmC;wBACnC,SAAsE,CAAC;;;;;KACxE;IAEe,uBAAI,GAApB,UAAqB,IAA0B;;;;4BAC7C,qBAAM,IAAI,CAAC,IAAI,EAAE,EAAA;;wBAAjB,SAAiB,CAAC;wBAClB,sBAAO,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAM,IAAI,KAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAG,CAAC,EAAC;;;;KACpE;IAEe,uBAAI,GAApB;;;gBACE,sBAAO,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC;;;KAC3D;IAEe,uBAAI,GAApB;;;;;;;wBACE,IAAI,IAAI,CAAC,QAAQ;4BAAE,sBAAO;6BAEtB,CAAC,QAAQ,CAAC,OAAO,EAAjB,wBAAiB;wBACnB,qBAAM,QAAQ,CAAC,KAAK,EAAE,EAAA;;wBAAtB,SAAsB,CAAC;;;wBAGzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;4BACjB,GAAG,GACP,MAAC,IAAI,CAAC,WAA2C,CAAC,GAAG,mCACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;4BAExB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE;sDACxC,IAAI,CAAC,IAAI,KAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,KAAA;6BACjC,CAAC,CAAC;yBACJ;wBAED,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAC;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;;;;KACtB;IAlGc,qBAAY,GAAwC,IAAI,CAAC;IACzD,eAAM,GAA8B,EAAE,CAAC;IACvC,gBAAO,GAAY,KAAK,CAAC;IAiG1C,eAAC;CAAA,AApGD,IAoGC;SApGY,QAAQ;AAsGrB,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,6BAAO,CAAA;IACP,+BAAS,CAAA;IACT,+BAAS,CAAA;IACT,6BAAO,CAAA;IACP,sCAAgB,CAAA;AAClB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAeD,MAAM,CAAN,IAAY,2BAKX;AALD,WAAY,2BAA2B;IACrC,+FAAiB,CAAA;IACjB,yFAAc,CAAA;IACd,iFAAU,CAAA;IACV,yFAAc,CAAA;AAChB,CAAC,EALW,2BAA2B,KAA3B,2BAA2B,QAKtC"}
package/esm/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export declare class AdMob {
17
17
  readonly AdSizeType: typeof AdSizeType;
18
18
  readonly Events: typeof Events;
19
19
  readonly TrackingAuthorizationStatus: typeof TrackingAuthorizationStatus;
20
+ constructor();
21
+ cleanup(): void;
20
22
  configure(config: AdMobConfig): Promise<unknown>;
21
23
  configRequest(requestConfig: RequestConfig): Promise<unknown>;
22
24
  setAppMuted(value: boolean): Promise<unknown>;
package/esm/index.js CHANGED
@@ -34,15 +34,31 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ import { exec } from 'cordova';
37
38
  import AppOpenAd from './app-open';
39
+ import channel from 'cordova/channel';
38
40
  import InterstitialAd from './interstitial';
39
41
  import BannerAd from './banner';
40
42
  import NativeAd from './native';
41
43
  import RewardedAd from './rewarded';
42
44
  import RewardedInterstitialAd from './rewarded-interstitial';
43
- import { Events, execAsync, NativeActions, start, AdSizeType, TrackingAuthorizationStatus, } from './shared';
45
+ import { Events, execAsync, NativeActions, AdSizeType, TrackingAuthorizationStatus, MobileAd } from './shared';
44
46
  export * from './api';
45
47
  export { AppOpenAd, BannerAd, InterstitialAd, NativeAd, RewardedAd, RewardedInterstitialAd, };
48
+ function onMessageFromNative(event) {
49
+ var data = event.data;
50
+ if (data && data.adId) {
51
+ data.ad = MobileAd.getAdById(data.adId);
52
+ }
53
+ cordova.fireDocumentEvent(event.type, data);
54
+ }
55
+ function cordovaEventListener() {
56
+ var feature = 'onAdMobPlusReady';
57
+ channel.createSticky(feature);
58
+ channel.waitForInitialization(feature);
59
+ exec(onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
60
+ channel.initializationComplete(feature);
61
+ }
46
62
  var AdMob = /** @class */ (function () {
47
63
  function AdMob() {
48
64
  this.AppOpenAd = AppOpenAd;
@@ -54,7 +70,12 @@ var AdMob = /** @class */ (function () {
54
70
  this.AdSizeType = AdSizeType;
55
71
  this.Events = Events;
56
72
  this.TrackingAuthorizationStatus = TrackingAuthorizationStatus;
73
+ channel.onCordovaReady.subscribe(cordovaEventListener);
57
74
  }
75
+ AdMob.prototype.cleanup = function () {
76
+ MobileAd.cleanup();
77
+ channel.onCordovaReady.unsubscribe(cordovaEventListener);
78
+ };
58
79
  AdMob.prototype.configure = function (config) {
59
80
  return execAsync(NativeActions.configure, [config]);
60
81
  };
@@ -68,7 +89,7 @@ var AdMob = /** @class */ (function () {
68
89
  return execAsync(NativeActions.setAppVolume, [value]);
69
90
  };
70
91
  AdMob.prototype.start = function () {
71
- return start();
92
+ return MobileAd.start();
72
93
  };
73
94
  AdMob.prototype.requestTrackingAuthorization = function () {
74
95
  return __awaiter(this, void 0, void 0, function () {
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/www/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,QAA6B,MAAM,UAAU,CAAC;AACrD,OAAO,QAA6B,MAAM,UAAU,CAAC;AACrD,OAAO,UAGN,MAAM,YAAY,CAAC;AACpB,OAAO,sBAEN,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,MAAM,EACN,SAAS,EACT,aAAa,EAGb,KAAK,EACL,UAAU,EACV,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAElB,cAAc,OAAO,CAAC;AACtB,OAAO,EACL,SAAS,EACT,QAAQ,EAER,cAAc,EACd,QAAQ,EAER,UAAU,EAEV,sBAAsB,GAGvB,CAAC;AAEF;IAAA;QACkB,cAAS,GAAG,SAAS,CAAC;QACtB,aAAQ,GAAG,QAAQ,CAAC;QACpB,mBAAc,GAAG,cAAc,CAAC;QAChC,aAAQ,GAAG,QAAQ,CAAC;QACpB,eAAU,GAAG,UAAU,CAAC;QACxB,2BAAsB,GAAG,sBAAsB,CAAC;QAChD,eAAU,GAAG,UAAU,CAAC;QACxB,WAAM,GAAG,MAAM,CAAC;QAChB,gCAA2B,GAAG,2BAA2B,CAAC;IAmC5E,CAAC;IAjCQ,yBAAS,GAAhB,UAAiB,MAAmB;QAClC,OAAO,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,6BAAa,GAApB,UAAqB,aAA4B;QAC/C,OAAO,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,2BAAW,GAAlB,UAAmB,KAAc;QAC/B,OAAO,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,4BAAY,GAAnB,UAAoB,KAAa;QAC/B,OAAO,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,qBAAK,GAAZ;QACE,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IAEY,4CAA4B,GAAzC;;;;;;6BAGM,CAAA,OAAO,CAAC,UAAU,8BAAkB,CAAA,EAApC,wBAAoC;wBAC5B,qBAAM,SAAS,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAA;;wBAA/D,CAAC,GAAG,SAA2D;wBACrE,IAAI,CAAC,KAAK,KAAK,EAAE;4BACf,sBAAO,2BAA2B,CAChC,2BAA2B,CAAC,CAAW,CAAC,CACzC,EAAC;yBACH;;4BAEH,sBAAO,KAAK,EAAC;;;;KACd;IACH,YAAC;AAAD,CAAC,AA5CD,IA4CC;;AAMD,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/www/index.ts"],"names":[],"mappings":"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"}
package/lib/admob.js CHANGED
@@ -1,50 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
2
  Object.defineProperty(exports, "__esModule", { value: true });
29
3
  var _1 = require(".");
30
- var exec_1 = __importDefault(require("cordova/exec"));
31
- var cordova = __importStar(require("cordova"));
32
- var channel_1 = __importDefault(require("cordova/channel"));
33
- var shared_1 = require("./shared");
34
4
  var admob = new _1.AdMob();
35
- function onMessageFromNative(event) {
36
- var data = event.data;
37
- if (data && data.adId) {
38
- data.ad = shared_1.MobileAd.getAdById(data.adId);
39
- }
40
- cordova.fireDocumentEvent(event.type, data);
41
- }
42
- var feature = 'onAdMobPlusReady';
43
- channel_1.default.createSticky(feature);
44
- channel_1.default.waitForInitialization(feature);
45
- channel_1.default.onCordovaReady.subscribe(function () {
46
- (0, exec_1.default)(onMessageFromNative, console.error, 'AdMob', shared_1.NativeActions.ready, []);
47
- channel_1.default.initializationComplete(feature);
48
- });
49
5
  exports.default = admob;
50
6
  //# sourceMappingURL=admob.js.map
package/lib/admob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"admob.js","sourceRoot":"","sources":["../src/www/admob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA0B;AAC1B,sDAAgC;AAChC,+CAAmC;AACnC,4DAAsC;AACtC,mCAAmD;AAEnD,IAAM,KAAK,GAAG,IAAI,QAAK,EAAE,CAAC;AAE1B,SAAS,mBAAmB,CAAC,KAAU;IAC7B,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,EAAE,GAAG,iBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzC;IACD,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,IAAM,OAAO,GAAG,kBAAkB,CAAC;AACnC,iBAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,iBAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAEvC,iBAAO,CAAC,cAAc,CAAC,SAAS,CAAC;IAC/B,IAAA,cAAI,EAAC,mBAAmB,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,sBAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3E,iBAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"admob.js","sourceRoot":"","sources":["../src/www/admob.ts"],"names":[],"mappings":";;AAAA,sBAA0B;AAE1B,IAAM,KAAK,GAAG,IAAI,QAAK,EAAE,CAAC;AAE1B,kBAAe,KAAK,CAAC"}
package/lib/api.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import BannerAd from './banner';
2
2
  import { Events } from './generated';
3
3
  export { execAsync, AdSizeType, Events, NativeActions } from './generated';
4
- /** @internal */
5
4
  export declare type MobileAdOptions = {
6
5
  id?: string;
7
6
  adUnitId: string;
@@ -12,20 +11,22 @@ export declare type MobileAdOptions = {
12
11
  declare type AdEventNames = Exclude<keyof typeof Events, 'ready'> extends infer K ? K extends keyof typeof Events ? typeof Events[K] extends `admob.${string}.${infer EventName}` ? EventName : never : never : never;
13
12
  declare type AdEventNamesByType<T extends MobileAd<any>> = T extends BannerAd ? Omit<AdEventNames, 'size' | 'sizechange'> : AdEventNames;
14
13
  /** @internal */
15
- export declare function start(): Promise<{
16
- version: string;
17
- }>;
18
- /** @internal */
19
14
  export declare class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
20
- static readonly type: string;
15
+ private static startPromise;
21
16
  private static allAds;
17
+ private static started;
18
+ private eventRemovers;
19
+ private _init;
22
20
  readonly id: string;
23
21
  protected readonly opts: T;
24
22
  private _created;
25
- private _init;
26
23
  constructor(opts: T);
27
24
  static getAdById(id: string): MobileAd<MobileAdOptions>;
28
25
  get adUnitId(): string;
26
+ static start(): Promise<{
27
+ version: string;
28
+ }>;
29
+ static cleanup(): void;
29
30
  on<EventNames extends AdEventNamesByType<this>>(eventName: EventNames, callback: (ev: Event) => any, useCapture?: boolean): () => void;
30
31
  protected isLoaded(): Promise<boolean>;
31
32
  protected load(): Promise<void>;
package/lib/api.js CHANGED
@@ -47,39 +47,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
47
47
  }
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.TrackingAuthorizationStatus = exports.MaxAdContentRating = exports.MobileAd = exports.start = exports.NativeActions = exports.Events = exports.AdSizeType = exports.execAsync = void 0;
50
+ exports.TrackingAuthorizationStatus = exports.MaxAdContentRating = exports.MobileAd = exports.NativeActions = exports.Events = exports.AdSizeType = exports.execAsync = void 0;
51
51
  var generated_1 = require("./generated");
52
52
  var generated_2 = require("./generated");
53
53
  Object.defineProperty(exports, "execAsync", { enumerable: true, get: function () { return generated_2.execAsync; } });
54
54
  Object.defineProperty(exports, "AdSizeType", { enumerable: true, get: function () { return generated_2.AdSizeType; } });
55
55
  Object.defineProperty(exports, "Events", { enumerable: true, get: function () { return generated_2.Events; } });
56
56
  Object.defineProperty(exports, "NativeActions", { enumerable: true, get: function () { return generated_2.NativeActions; } });
57
- var started = false;
58
- var startPromise = null;
59
- /** @internal */
60
- function start() {
61
- return __awaiter(this, void 0, void 0, function () {
62
- var result;
63
- return __generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0:
66
- startPromise = (0, generated_1.execAsync)(generated_1.NativeActions.start);
67
- return [4 /*yield*/, startPromise];
68
- case 1:
69
- result = _a.sent();
70
- started = true;
71
- return [2 /*return*/, result];
72
- }
73
- });
74
- });
75
- }
76
- exports.start = start;
77
57
  /** @internal */
78
58
  var MobileAd = /** @class */ (function () {
79
59
  function MobileAd(opts) {
80
60
  var _a;
81
- this._created = false;
61
+ this.eventRemovers = [];
82
62
  this._init = null;
63
+ this._created = false;
83
64
  this.opts = opts;
84
65
  this.id = (_a = opts.id) !== null && _a !== void 0 ? _a : opts.adUnitId;
85
66
  MobileAd.allAds[this.id] = this;
@@ -94,6 +75,30 @@ var MobileAd = /** @class */ (function () {
94
75
  enumerable: false,
95
76
  configurable: true
96
77
  });
78
+ MobileAd.start = function () {
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var result;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ if (!!this.startPromise) return [3 /*break*/, 2];
85
+ this.startPromise = (0, generated_1.execAsync)(generated_1.NativeActions.start);
86
+ return [4 /*yield*/, this.startPromise];
87
+ case 1:
88
+ result = _a.sent();
89
+ this.started = true;
90
+ return [2 /*return*/, result];
91
+ case 2: return [2 /*return*/, this.startPromise];
92
+ }
93
+ });
94
+ });
95
+ };
96
+ MobileAd.cleanup = function () {
97
+ Object.values(this.allAds).forEach(function (ad) { return ad.eventRemovers.forEach(function (remover) { return remover(); }); });
98
+ this.allAds = {};
99
+ this.started = false;
100
+ this.startPromise = null;
101
+ };
97
102
  MobileAd.prototype.on = function (eventName, callback, useCapture) {
98
103
  var _this = this;
99
104
  var type = "admob.ad.".concat(eventName.toLowerCase());
@@ -103,9 +108,14 @@ var MobileAd = /** @class */ (function () {
103
108
  }
104
109
  };
105
110
  document.addEventListener(type, listener, useCapture);
106
- return function () {
111
+ var removeFn = function () {
107
112
  document.removeEventListener(type, listener, useCapture);
113
+ var index = _this.eventRemovers.indexOf(removeFn);
114
+ if (index !== -1)
115
+ _this.eventRemovers.splice(index, 1);
108
116
  };
117
+ this.eventRemovers.push(removeFn);
118
+ return removeFn;
109
119
  };
110
120
  MobileAd.prototype.isLoaded = function () {
111
121
  return __awaiter(this, void 0, void 0, function () {
@@ -123,9 +133,7 @@ var MobileAd = /** @class */ (function () {
123
133
  return __awaiter(this, void 0, void 0, function () {
124
134
  return __generator(this, function (_a) {
125
135
  switch (_a.label) {
126
- case 0: return [4 /*yield*/, this.init()
127
- // TODO read `opts` in native code?
128
- ];
136
+ case 0: return [4 /*yield*/, this.init()];
129
137
  case 1:
130
138
  _a.sent();
131
139
  // TODO read `opts` in native code?
@@ -166,10 +174,8 @@ var MobileAd = /** @class */ (function () {
166
174
  case 0:
167
175
  if (this._created)
168
176
  return [2 /*return*/];
169
- if (!!started) return [3 /*break*/, 2];
170
- if (startPromise === null)
171
- start();
172
- return [4 /*yield*/, startPromise];
177
+ if (!!MobileAd.started) return [3 /*break*/, 2];
178
+ return [4 /*yield*/, MobileAd.start()];
173
179
  case 1:
174
180
  _b.sent();
175
181
  _b.label = 2;
@@ -189,8 +195,9 @@ var MobileAd = /** @class */ (function () {
189
195
  });
190
196
  });
191
197
  };
192
- MobileAd.type = '';
198
+ MobileAd.startPromise = null;
193
199
  MobileAd.allAds = {};
200
+ MobileAd.started = false;
194
201
  return MobileAd;
195
202
  }());
196
203
  exports.MobileAd = MobileAd;
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/www/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/www/api.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export declare class AdMob {
17
17
  readonly AdSizeType: typeof AdSizeType;
18
18
  readonly Events: typeof Events;
19
19
  readonly TrackingAuthorizationStatus: typeof TrackingAuthorizationStatus;
20
+ constructor();
21
+ cleanup(): void;
20
22
  configure(config: AdMobConfig): Promise<unknown>;
21
23
  configRequest(requestConfig: RequestConfig): Promise<unknown>;
22
24
  setAppMuted(value: boolean): Promise<unknown>;
package/lib/index.js CHANGED
@@ -54,8 +54,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.AdMob = exports.RewardedInterstitialAd = exports.RewardedAd = exports.NativeAd = exports.InterstitialAd = exports.BannerAd = exports.AppOpenAd = void 0;
57
+ var cordova_1 = require("cordova");
57
58
  var app_open_1 = __importDefault(require("./app-open"));
58
59
  exports.AppOpenAd = app_open_1.default;
60
+ var channel_1 = __importDefault(require("cordova/channel"));
59
61
  var interstitial_1 = __importDefault(require("./interstitial"));
60
62
  exports.InterstitialAd = interstitial_1.default;
61
63
  var banner_1 = __importDefault(require("./banner"));
@@ -68,6 +70,20 @@ var rewarded_interstitial_1 = __importDefault(require("./rewarded-interstitial")
68
70
  exports.RewardedInterstitialAd = rewarded_interstitial_1.default;
69
71
  var shared_1 = require("./shared");
70
72
  __exportStar(require("./api"), exports);
73
+ function onMessageFromNative(event) {
74
+ var data = event.data;
75
+ if (data && data.adId) {
76
+ data.ad = shared_1.MobileAd.getAdById(data.adId);
77
+ }
78
+ cordova.fireDocumentEvent(event.type, data);
79
+ }
80
+ function cordovaEventListener() {
81
+ var feature = 'onAdMobPlusReady';
82
+ channel_1.default.createSticky(feature);
83
+ channel_1.default.waitForInitialization(feature);
84
+ (0, cordova_1.exec)(onMessageFromNative, console.error, 'AdMob', shared_1.NativeActions.ready, []);
85
+ channel_1.default.initializationComplete(feature);
86
+ }
71
87
  var AdMob = /** @class */ (function () {
72
88
  function AdMob() {
73
89
  this.AppOpenAd = app_open_1.default;
@@ -79,7 +95,12 @@ var AdMob = /** @class */ (function () {
79
95
  this.AdSizeType = shared_1.AdSizeType;
80
96
  this.Events = shared_1.Events;
81
97
  this.TrackingAuthorizationStatus = shared_1.TrackingAuthorizationStatus;
98
+ channel_1.default.onCordovaReady.subscribe(cordovaEventListener);
82
99
  }
100
+ AdMob.prototype.cleanup = function () {
101
+ shared_1.MobileAd.cleanup();
102
+ channel_1.default.onCordovaReady.unsubscribe(cordovaEventListener);
103
+ };
83
104
  AdMob.prototype.configure = function (config) {
84
105
  return (0, shared_1.execAsync)(shared_1.NativeActions.configure, [config]);
85
106
  };
@@ -93,7 +114,7 @@ var AdMob = /** @class */ (function () {
93
114
  return (0, shared_1.execAsync)(shared_1.NativeActions.setAppVolume, [value]);
94
115
  };
95
116
  AdMob.prototype.start = function () {
96
- return (0, shared_1.start)();
117
+ return shared_1.MobileAd.start();
97
118
  };
98
119
  AdMob.prototype.requestTrackingAuthorization = function () {
99
120
  return __awaiter(this, void 0, void 0, function () {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/www/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAmC;AAyBjC,oBAzBK,kBAAS,CAyBL;AAxBX,gEAA4C;AA2B1C,yBA3BK,sBAAc,CA2BL;AA1BhB,oDAAqD;AAwBnD,mBAxBK,gBAAQ,CAwBL;AAvBV,oDAAqD;AA0BnD,mBA1BK,gBAAQ,CA0BL;AAzBV,wDAGoB;AAwBlB,qBA3BK,kBAAU,CA2BL;AAvBZ,kFAEiC;AAuB/B,iCAzBK,+BAAsB,CAyBL;AAtBxB,mCAUkB;AAElB,wCAAsB;AAetB;IAAA;QACkB,cAAS,GAAG,kBAAS,CAAC;QACtB,aAAQ,GAAG,gBAAQ,CAAC;QACpB,mBAAc,GAAG,sBAAc,CAAC;QAChC,aAAQ,GAAG,gBAAQ,CAAC;QACpB,eAAU,GAAG,kBAAU,CAAC;QACxB,2BAAsB,GAAG,+BAAsB,CAAC;QAChD,eAAU,GAAG,mBAAU,CAAC;QACxB,WAAM,GAAG,eAAM,CAAC;QAChB,gCAA2B,GAAG,oCAA2B,CAAC;IAmC5E,CAAC;IAjCQ,yBAAS,GAAhB,UAAiB,MAAmB;QAClC,OAAO,IAAA,kBAAS,EAAC,sBAAa,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,6BAAa,GAApB,UAAqB,aAA4B;QAC/C,OAAO,IAAA,kBAAS,EAAC,sBAAa,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,2BAAW,GAAlB,UAAmB,KAAc;QAC/B,OAAO,IAAA,kBAAS,EAAC,sBAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,4BAAY,GAAnB,UAAoB,KAAa;QAC/B,OAAO,IAAA,kBAAS,EAAC,sBAAa,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,qBAAK,GAAZ;QACE,OAAO,IAAA,cAAK,GAAE,CAAC;IACjB,CAAC;IAEY,4CAA4B,GAAzC;;;;;;6BAGM,CAAA,OAAO,CAAC,UAAU,8BAAkB,CAAA,EAApC,wBAAoC;wBAC5B,qBAAM,IAAA,kBAAS,EAAC,sBAAa,CAAC,4BAA4B,CAAC,EAAA;;wBAA/D,CAAC,GAAG,SAA2D;wBACrE,IAAI,CAAC,KAAK,KAAK,EAAE;4BACf,sBAAO,oCAA2B,CAChC,oCAA2B,CAAC,CAAW,CAAC,CACzC,EAAC;yBACH;;4BAEH,sBAAO,KAAK,EAAC;;;;KACd;IACH,YAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,sBAAK;AAkDlB,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/www/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cordova-admob-tomitank",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "Trustable Google AdMob Cordova Plugin",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
package/plugin.xml CHANGED
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0' encoding='utf-8'?>
2
- <plugin id="cordova-admob-tomitank" version="1.2.6"
2
+ <plugin id="cordova-admob-tomitank" version="1.2.8"
3
3
  xmlns="http://apache.org/cordova/ns/plugins/1.0"
4
4
  xmlns:android="http://schemas.android.com/apk/res/android">
5
5
  <name>cordova-admob-tomitank</name>
package/src/www/admob.ts CHANGED
@@ -1,26 +1,5 @@
1
1
  import { AdMob } from '.';
2
- import exec from 'cordova/exec';
3
- import * as cordova from 'cordova';
4
- import channel from 'cordova/channel';
5
- import { MobileAd, NativeActions } from './shared';
6
2
 
7
3
  const admob = new AdMob();
8
4
 
9
- function onMessageFromNative(event: any) {
10
- const { data } = event;
11
- if (data && data.adId) {
12
- data.ad = MobileAd.getAdById(data.adId);
13
- }
14
- cordova.fireDocumentEvent(event.type, data);
15
- }
16
-
17
- const feature = 'onAdMobPlusReady';
18
- channel.createSticky(feature);
19
- channel.waitForInitialization(feature);
20
-
21
- channel.onCordovaReady.subscribe(() => {
22
- exec(onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
23
- channel.initializationComplete(feature);
24
- });
25
-
26
5
  export default admob;
package/src/www/api.ts CHANGED
@@ -2,7 +2,6 @@ import BannerAd from './banner';
2
2
  import { execAsync, Events, NativeActions } from './generated';
3
3
  export { execAsync, AdSizeType, Events, NativeActions } from './generated';
4
4
 
5
- /** @internal */
6
5
  export type MobileAdOptions = {
7
6
  id?: string
8
7
  adUnitId: string
@@ -11,8 +10,6 @@ export type MobileAdOptions = {
11
10
  npa?: '1'
12
11
  };
13
12
 
14
- let started = false;
15
- let startPromise: Promise<{ version: string }> | null = null;
16
13
  type AdEventNames = Exclude<keyof typeof Events, 'ready'> extends infer K
17
14
  ? K extends keyof typeof Events
18
15
  ? typeof Events[K] extends `admob.${string}.${infer EventName}`
@@ -24,22 +21,16 @@ type AdEventNames = Exclude<keyof typeof Events, 'ready'> extends infer K
24
21
  // Size and dimension currently only apply to the banner
25
22
  type AdEventNamesByType<T extends MobileAd<any>> = T extends BannerAd ? Omit<AdEventNames, 'size'|'sizechange'> : AdEventNames;
26
23
 
27
- /** @internal */
28
- export async function start() {
29
- startPromise = execAsync(NativeActions.start) as Promise<{ version: string }>;
30
- const result = await startPromise;
31
- started = true;
32
- return result;
33
- }
34
-
35
24
  /** @internal */
36
25
  export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
37
- public static readonly type: string = '';
26
+ private static startPromise: Promise<{ version: string }> | null = null;
38
27
  private static allAds: { [s: string]: MobileAd } = {};
28
+ private static started: boolean = false;
29
+ private eventRemovers: Array<Function> = [];
30
+ private _init: Promise<any> | null = null;
39
31
  public readonly id: string;
40
32
  protected readonly opts: T;
41
33
  private _created = false;
42
- private _init: Promise<any> | null = null;
43
34
 
44
35
  constructor(opts: T) {
45
36
  this.opts = opts;
@@ -55,6 +46,23 @@ export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
55
46
  return this.opts.adUnitId;
56
47
  }
57
48
 
49
+ public static async start() {
50
+ if (!this.startPromise) {
51
+ this.startPromise = execAsync(NativeActions.start) as Promise<{ version: string }>;
52
+ const result = await this.startPromise;
53
+ this.started = true;
54
+ return result;
55
+ }
56
+ return this.startPromise;
57
+ }
58
+
59
+ public static cleanup() {
60
+ Object.values(this.allAds).forEach(ad => ad.eventRemovers.forEach(remover => remover()));
61
+ this.allAds = {};
62
+ this.started = false;
63
+ this.startPromise = null;
64
+ }
65
+
58
66
  public on<EventNames extends AdEventNamesByType<this>>(eventName: EventNames, callback: (ev: Event) => any, useCapture?: boolean): () => void {
59
67
  const type = `admob.ad.${eventName.toLowerCase()}`;
60
68
  const listener = (evt: Event & { ad?: MobileAd }) => {
@@ -64,9 +72,14 @@ export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
64
72
  };
65
73
  document.addEventListener(type, listener, useCapture);
66
74
 
67
- return () => {
75
+ const removeFn = () => {
68
76
  document.removeEventListener(type, listener, useCapture);
77
+ const index = this.eventRemovers.indexOf(removeFn);
78
+ if (index !== -1) this.eventRemovers.splice(index, 1);
69
79
  };
80
+
81
+ this.eventRemovers.push(removeFn);
82
+ return removeFn;
70
83
  }
71
84
 
72
85
  protected async isLoaded() {
@@ -75,13 +88,13 @@ export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
75
88
  }
76
89
 
77
90
  protected async load() {
78
- await this.init()
91
+ await this.init();
79
92
  // TODO read `opts` in native code?
80
93
  await execAsync(NativeActions.adLoad, [{ ...this.opts, id: this.id }]);
81
94
  }
82
95
 
83
96
  protected async show(opts?: Record<string, any>) {
84
- await this.init()
97
+ await this.init();
85
98
  return execAsync(NativeActions.adShow, [{ ...opts, id: this.id }]);
86
99
  }
87
100
 
@@ -92,9 +105,8 @@ export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
92
105
  protected async init() {
93
106
  if (this._created) return;
94
107
 
95
- if (!started) {
96
- if (startPromise === null) start();
97
- await startPromise;
108
+ if (!MobileAd.started) {
109
+ await MobileAd.start();
98
110
  }
99
111
 
100
112
  if (this._init === null) {
package/src/www/index.ts CHANGED
@@ -1,25 +1,12 @@
1
+ import { exec } from 'cordova';
1
2
  import AppOpenAd from './app-open';
3
+ import channel from 'cordova/channel';
2
4
  import InterstitialAd from './interstitial';
3
5
  import BannerAd, { BannerAdOptions } from './banner';
4
6
  import NativeAd, { NativeAdOptions } from './native';
5
- import RewardedAd, {
6
- RewardedAdOptions,
7
- ServerSideVerificationOptions,
8
- } from './rewarded';
9
- import RewardedInterstitialAd, {
10
- RewardedInterstitialAdOptions,
11
- } from './rewarded-interstitial';
12
- import {
13
- AdMobConfig,
14
- Events,
15
- execAsync,
16
- NativeActions,
17
- Platforms,
18
- RequestConfig,
19
- start,
20
- AdSizeType,
21
- TrackingAuthorizationStatus,
22
- } from './shared';
7
+ import RewardedAd, { RewardedAdOptions, ServerSideVerificationOptions } from './rewarded';
8
+ import RewardedInterstitialAd, { RewardedInterstitialAdOptions } from './rewarded-interstitial';
9
+ import { AdMobConfig, Events, execAsync, NativeActions, Platforms, RequestConfig, AdSizeType, TrackingAuthorizationStatus, MobileAd } from './shared';
23
10
 
24
11
  export * from './api';
25
12
  export {
@@ -36,6 +23,22 @@ export {
36
23
  ServerSideVerificationOptions,
37
24
  };
38
25
 
26
+ function onMessageFromNative(event: any) {
27
+ const { data } = event;
28
+ if (data && data.adId) {
29
+ data.ad = MobileAd.getAdById(data.adId);
30
+ }
31
+ cordova.fireDocumentEvent(event.type, data);
32
+ }
33
+
34
+ function cordovaEventListener() {
35
+ const feature = 'onAdMobPlusReady';
36
+ channel.createSticky(feature);
37
+ channel.waitForInitialization(feature);
38
+ exec(onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
39
+ channel.initializationComplete(feature);
40
+ }
41
+
39
42
  export class AdMob {
40
43
  public readonly AppOpenAd = AppOpenAd;
41
44
  public readonly BannerAd = BannerAd;
@@ -47,6 +50,15 @@ export class AdMob {
47
50
  public readonly Events = Events;
48
51
  public readonly TrackingAuthorizationStatus = TrackingAuthorizationStatus;
49
52
 
53
+ constructor() {
54
+ channel.onCordovaReady.subscribe(cordovaEventListener);
55
+ }
56
+
57
+ public cleanup() {
58
+ MobileAd.cleanup();
59
+ channel.onCordovaReady.unsubscribe(cordovaEventListener);
60
+ }
61
+
50
62
  public configure(config: AdMobConfig) {
51
63
  return execAsync(NativeActions.configure, [config]);
52
64
  }
@@ -64,7 +76,7 @@ export class AdMob {
64
76
  }
65
77
 
66
78
  public start() {
67
- return start();
79
+ return MobileAd.start();
68
80
  }
69
81
 
70
82
  public async requestTrackingAuthorization(): Promise<
package/www/admob.js CHANGED
@@ -1,31 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var exec = require('cordova/exec');
4
3
  var cordova$1 = require('cordova');
5
4
  var channel = require('cordova/channel');
6
5
 
7
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
7
 
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n["default"] = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var exec__default = /*#__PURE__*/_interopDefaultLegacy(exec);
28
- var cordova__namespace = /*#__PURE__*/_interopNamespace(cordova$1);
29
8
  var channel__default = /*#__PURE__*/_interopDefaultLegacy(channel);
30
9
 
31
10
  /******************************************************************************
@@ -159,31 +138,13 @@ var execAsync = function (action, args) {
159
138
  });
160
139
  };
161
140
 
162
- var started = false;
163
- var startPromise = null;
164
- /** @internal */
165
- function start() {
166
- return __awaiter(this, void 0, void 0, function () {
167
- var result;
168
- return __generator(this, function (_a) {
169
- switch (_a.label) {
170
- case 0:
171
- startPromise = execAsync(NativeActions.start);
172
- return [4 /*yield*/, startPromise];
173
- case 1:
174
- result = _a.sent();
175
- started = true;
176
- return [2 /*return*/, result];
177
- }
178
- });
179
- });
180
- }
181
141
  /** @internal */
182
142
  var MobileAd = /** @class */ (function () {
183
143
  function MobileAd(opts) {
184
144
  var _a;
185
- this._created = false;
145
+ this.eventRemovers = [];
186
146
  this._init = null;
147
+ this._created = false;
187
148
  this.opts = opts;
188
149
  this.id = (_a = opts.id) !== null && _a !== void 0 ? _a : opts.adUnitId;
189
150
  MobileAd.allAds[this.id] = this;
@@ -198,6 +159,30 @@ var MobileAd = /** @class */ (function () {
198
159
  enumerable: false,
199
160
  configurable: true
200
161
  });
162
+ MobileAd.start = function () {
163
+ return __awaiter(this, void 0, void 0, function () {
164
+ var result;
165
+ return __generator(this, function (_a) {
166
+ switch (_a.label) {
167
+ case 0:
168
+ if (!!this.startPromise) return [3 /*break*/, 2];
169
+ this.startPromise = execAsync(NativeActions.start);
170
+ return [4 /*yield*/, this.startPromise];
171
+ case 1:
172
+ result = _a.sent();
173
+ this.started = true;
174
+ return [2 /*return*/, result];
175
+ case 2: return [2 /*return*/, this.startPromise];
176
+ }
177
+ });
178
+ });
179
+ };
180
+ MobileAd.cleanup = function () {
181
+ Object.values(this.allAds).forEach(function (ad) { return ad.eventRemovers.forEach(function (remover) { return remover(); }); });
182
+ this.allAds = {};
183
+ this.started = false;
184
+ this.startPromise = null;
185
+ };
201
186
  MobileAd.prototype.on = function (eventName, callback, useCapture) {
202
187
  var _this = this;
203
188
  var type = "admob.ad.".concat(eventName.toLowerCase());
@@ -207,9 +192,14 @@ var MobileAd = /** @class */ (function () {
207
192
  }
208
193
  };
209
194
  document.addEventListener(type, listener, useCapture);
210
- return function () {
195
+ var removeFn = function () {
211
196
  document.removeEventListener(type, listener, useCapture);
197
+ var index = _this.eventRemovers.indexOf(removeFn);
198
+ if (index !== -1)
199
+ _this.eventRemovers.splice(index, 1);
212
200
  };
201
+ this.eventRemovers.push(removeFn);
202
+ return removeFn;
213
203
  };
214
204
  MobileAd.prototype.isLoaded = function () {
215
205
  return __awaiter(this, void 0, void 0, function () {
@@ -227,9 +217,7 @@ var MobileAd = /** @class */ (function () {
227
217
  return __awaiter(this, void 0, void 0, function () {
228
218
  return __generator(this, function (_a) {
229
219
  switch (_a.label) {
230
- case 0: return [4 /*yield*/, this.init()
231
- // TODO read `opts` in native code?
232
- ];
220
+ case 0: return [4 /*yield*/, this.init()];
233
221
  case 1:
234
222
  _a.sent();
235
223
  // TODO read `opts` in native code?
@@ -270,10 +258,8 @@ var MobileAd = /** @class */ (function () {
270
258
  case 0:
271
259
  if (this._created)
272
260
  return [2 /*return*/];
273
- if (!!started) return [3 /*break*/, 2];
274
- if (startPromise === null)
275
- start();
276
- return [4 /*yield*/, startPromise];
261
+ if (!!MobileAd.started) return [3 /*break*/, 2];
262
+ return [4 /*yield*/, MobileAd.start()];
277
263
  case 1:
278
264
  _b.sent();
279
265
  _b.label = 2;
@@ -293,8 +279,9 @@ var MobileAd = /** @class */ (function () {
293
279
  });
294
280
  });
295
281
  };
296
- MobileAd.type = '';
282
+ MobileAd.startPromise = null;
297
283
  MobileAd.allAds = {};
284
+ MobileAd.started = false;
298
285
  return MobileAd;
299
286
  }());
300
287
  var MaxAdContentRating;
@@ -552,6 +539,20 @@ var RewardedInterstitialAd = /** @class */ (function (_super) {
552
539
  return RewardedInterstitialAd;
553
540
  }(MobileAd));
554
541
 
542
+ function onMessageFromNative(event) {
543
+ var data = event.data;
544
+ if (data && data.adId) {
545
+ data.ad = MobileAd.getAdById(data.adId);
546
+ }
547
+ cordova.fireDocumentEvent(event.type, data);
548
+ }
549
+ function cordovaEventListener() {
550
+ var feature = 'onAdMobPlusReady';
551
+ channel__default["default"].createSticky(feature);
552
+ channel__default["default"].waitForInitialization(feature);
553
+ cordova$1.exec(onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
554
+ channel__default["default"].initializationComplete(feature);
555
+ }
555
556
  var AdMob = /** @class */ (function () {
556
557
  function AdMob() {
557
558
  this.AppOpenAd = AppOpenAd;
@@ -563,7 +564,12 @@ var AdMob = /** @class */ (function () {
563
564
  this.AdSizeType = AdSizeType;
564
565
  this.Events = Events;
565
566
  this.TrackingAuthorizationStatus = TrackingAuthorizationStatus;
567
+ channel__default["default"].onCordovaReady.subscribe(cordovaEventListener);
566
568
  }
569
+ AdMob.prototype.cleanup = function () {
570
+ MobileAd.cleanup();
571
+ channel__default["default"].onCordovaReady.unsubscribe(cordovaEventListener);
572
+ };
567
573
  AdMob.prototype.configure = function (config) {
568
574
  return execAsync(NativeActions.configure, [config]);
569
575
  };
@@ -577,7 +583,7 @@ var AdMob = /** @class */ (function () {
577
583
  return execAsync(NativeActions.setAppVolume, [value]);
578
584
  };
579
585
  AdMob.prototype.start = function () {
580
- return start();
586
+ return MobileAd.start();
581
587
  };
582
588
  AdMob.prototype.requestTrackingAuthorization = function () {
583
589
  return __awaiter(this, void 0, void 0, function () {
@@ -601,20 +607,6 @@ var AdMob = /** @class */ (function () {
601
607
  return AdMob;
602
608
  }());
603
609
 
604
- var admob = new AdMob();
605
- function onMessageFromNative(event) {
606
- var data = event.data;
607
- if (data && data.adId) {
608
- data.ad = MobileAd.getAdById(data.adId);
609
- }
610
- cordova__namespace.fireDocumentEvent(event.type, data);
611
- }
612
- var feature = 'onAdMobPlusReady';
613
- channel__default["default"].createSticky(feature);
614
- channel__default["default"].waitForInitialization(feature);
615
- channel__default["default"].onCordovaReady.subscribe(function () {
616
- exec__default["default"](onMessageFromNative, console.error, 'AdMob', NativeActions.ready, []);
617
- channel__default["default"].initializationComplete(feature);
618
- });
610
+ var admob = new AdMob();
619
611
 
620
612
  module.exports = admob;