diff --git a/src/@ionic-native/plugins/admob-plus/index.ts b/src/@ionic-native/plugins/admob-plus/index.ts new file mode 100644 index 000000000..d20fcd3b5 --- /dev/null +++ b/src/@ionic-native/plugins/admob-plus/index.ts @@ -0,0 +1,93 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; +import { fromEvent } from 'rxjs/observable/fromEvent'; + +export type AdUnitIDOption = string | { + android: string; + ios: string; +}; + +/** + * @name AdMob Free + * @description + * AdMob Plus is the successor of cordova-plugin-admob-free, which provides a cleaner API and build with modern tools. + */ +@Plugin({ + plugin: 'cordova-admob-plus', + pluginName: 'AdMob', + pluginRef: 'admob.banner', +}) +export class Banner { + @Cordova({ otherPromise: true }) + hide(): Promise { + return Promise.resolve(); + } + + @Cordova({ otherPromise: true }) + show(opts: { id?: AdUnitIDOption }): Promise { + return Promise.resolve(); + } +} + +@Plugin({ + plugin: 'cordova-admob-plus', + pluginName: 'AdMob', + pluginRef: 'admob.interstitial', +}) +export class Interstitial { + @Cordova({ otherPromise: true }) + load(opts: { id?: AdUnitIDOption }): Promise { + return Promise.resolve(); + } + + @Cordova({ otherPromise: true }) + show(): Promise { + return Promise.resolve(); + } +} + +@Plugin({ + plugin: 'cordova-admob-plus', + pluginName: 'AdMob', + pluginRef: 'admob.rewardVideo', +}) +export class RewardVideo { + @Cordova({ otherPromise: true }) + load(opts: { id?: AdUnitIDOption }): Promise { + return Promise.resolve(); + } + + @Cordova({ otherPromise: true }) + show(): Promise { + return Promise.resolve(); + } +} + +@Plugin({ + platforms: ['Android', 'iOS'], + plugin: 'cordova-admob-plus', + pluginName: 'AdMob', + pluginRef: 'admob', + repo: 'https://github.com/admob-plus/admob-plus', +}) +@Injectable() +export class AdMob extends IonicNativePlugin { + banner = new Banner(); + interstitial = new Interstitial(); + rewardVideo = new RewardVideo(); + + @Cordova({ otherPromise: true }) + setAppMuted(value: boolean): Promise { + return Promise.resolve(); + } + + @Cordova({ otherPromise: true }) + setAppVolume(value: number): Promise { + return Promise.resolve(); + } + + on(event: string): Observable { + return fromEvent(document, event); + } +}