diff --git a/src/@ionic-native/plugins/admob-free/index.ts b/src/@ionic-native/plugins/admob-free/index.ts new file mode 100644 index 0000000000..16b632ac66 --- /dev/null +++ b/src/@ionic-native/plugins/admob-free/index.ts @@ -0,0 +1,276 @@ +import { Plugin, Cordova } from '@ionic-native/core'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/observable/fromEvent'; + +export interface AdMobFreeBannerConfig { + /** + * Ad Unit ID + */ + id?: string; + /** + * receiving test ad + */ + isTesting?: boolean; + /** + * auto show ad when loaded + */ + autoShow?: boolean; + /** + * set to true, to put banner at top + */ + bannerAtTop?: boolean; + /** + * set to true, to allow banner overlap webview + */ + overlap?: boolean; + /** + * set to true to avoid ios7 status bar overlap + */ + offsetTopBar?: boolean; + /** + * Banner size + */ + size?: string; +} + +export interface AdMobFreeInterstitialConfig { + /** + * Ad Unit ID + */ + id?: string; + /** + * receiving test ad + */ + isTesting?: boolean; + /** + * auto show ad when loaded + */ + autoShow?: boolean; +} + +export interface AdMobFreeRewardVideoConfig { + /** + * Ad Unit ID + */ + id?: string; + /** + * receiving test ad + */ + isTesting?: boolean; + /** + * auto show ad when loaded + */ + autoShow?: boolean; +} + +/** + * @name AdbMobFree + * @description + * + * @usage + * ``` + * import { AdMobFree } from 'ionic-native'; + * + * + * constructor(private admobFree: AdMobFree) { } + * + * ... + * + * + * ``` + */ +@Plugin({ + pluginName: 'AdMobFree', + plugin: 'cordova-plugin-admob-free', + pluginRef: 'admob', + repo: 'https://github.com/ratson/cordova-plugin-admob-free' +}) +@Injectable() +export class AdMobFree { + + /** + * Convenience constructor to get event names + */ + events = { + BANNER_LOAD: 'admob.banner.events.LOAD', + BANNER_LOAD_FAIL: 'admob.banner.events.LOAD_FAIL', + BANNER_OPEN: 'admob.banner.events.OPEN', + BANNER_CLOSE: 'admob.banner.events.CLOSE', + BANNER_EXIT_APP: 'admob.banner.events.EXIT_APP', + + INTERSTITIAL_LOAD: 'admob.interstitial.events.LOAD', + INTERSTITIAL_LOAD_FAIL: 'admob.interstitial.events.LOAD_FAIL', + INTERSTITIAL_OPEN: 'admob.interstitial.events.OPEN', + INTERSTITIAL_CLOSE: 'admob.interstitial.events.CLOSE', + INTERSTITIAL_EXIT_APP: 'admob.interstitial.events.EXIT_APP', + + REWARD_VIDEO_LOAD: 'admob.rewardvideo.events.LOAD', + REWARD_VIDEO_LOAD_FAIL: 'admob.rewardvideo.events.LOAD_FAIL', + REWARD_VIDEO_OPEN: 'admob.rewardvideo.events.OPEN', + REWARD_VIDEO_CLOSE: 'admob.rewardvideo.events.CLOSE', + REWARD_VIDEO_EXIT_APP: 'admob.rewardvideo.events.EXIT_APP', + REWARD_VIDEO_START: 'admob.rewardvideo.events.START', + REWARD_VIDEO_REWARD: 'admob.rewardvideo.events.REWARD' + }; + + /** + * Watch an event + * @param event {string} event name + * @return {Observable} + */ + on(event: string): Observable { + return Observable.fromEvent(document, event); + } + + /** + * + * @type {AdMobFreeBanner} + */ + banner: AdMobFreeBanner = new AdMobFreeBanner(); + + /** + * + * @type {AdMobFreeInterstitial} + */ + interstitial: AdMobFreeInterstitial = new AdMobFreeInterstitial(); + + /** + * + * @type {AdMobFreeRewardVideo} + */ + rewardVideo: AdMobFreeRewardVideo = new AdMobFreeRewardVideo(); + +} + +/** + * @hidden + */ +@Plugin({ + pluginName: 'AdMobFree', + plugin: 'cordova-plugin-admob-free', + pluginRef: 'admob.banner', +}) +export class AdMobFreeBanner { + + + + /** + * Update config. + * @param options + * @return {AdMobFreeBannerConfig} + */ + @Cordova({ sync: true }) + config(options: AdMobFreeBannerConfig): AdMobFreeBannerConfig { return; } + + /** + * Hide the banner. + * @return {Promise} + */ + @Cordova({ sync: true }) + hide(): Promise { return; } + + /** + * Create banner. + * @return {Promise} + */ + @Cordova({ sync: true }) + prepare(): Promise { return; } + + /** + * Remove the banner. + * @return {Promise} + */ + @Cordova({ sync: true }) + remove(): Promise { return; } + + /** + * Show the banner. + * @return {Promise} + */ + @Cordova({ sync: true }) + show(): Promise { return; } + +} + +/** + * @hidden + */ +@Plugin({ + pluginName: 'AdMobFree', + plugin: 'cordova-plugin-admob-free', + pluginRef: 'admob.interstitial', +}) +export class AdMobFreeInterstitial { + + /** + * Update config. + * @param options + * @return {AdMobFreeInterstitialConfig} + */ + @Cordova({ sync: true }) + config(options: AdMobFreeInterstitialConfig): AdMobFreeInterstitialConfig { return; } + + /** + * Check if interstitial is ready + * @return {Promise} + */ + @Cordova({ sync: true }) + isReady(): Promise { return; } + + /** + * Prepare interstitial + * @return {Promise} + */ + @Cordova({ sync: true }) + prepare(): Promise { return; } + + /** + * Show the interstitial + * @return {Promise} + */ + @Cordova({ sync: true }) + show(): Promise { return; } + +} + +/** + * @hidden + */ +@Plugin({ + pluginName: 'AdMobFree', + plugin: 'cordova-plugin-admob-free', + pluginRef: 'admob.rewardvideo', +}) +export class AdMobFreeRewardVideo { + + /** + * Update config. + * @param options + * @return {AdMobFreeRewardVideoConfig} + */ + @Cordova({ sync: true }) + config(options: AdMobFreeRewardVideoConfig): AdMobFreeRewardVideoConfig { return; } + + /** + * Check if reward video is ready + * @return {Promise} + */ + @Cordova({ sync: true }) + isReady(): Promise { return; } + + /** + * Prepare reward video + * @return {Promise} + */ + @Cordova({ sync: true }) + prepare(): Promise { return; } + + /** + * Show the reward video + * @return {Promise} + */ + @Cordova({ sync: true }) + show(): Promise { return; } + +}