@ququplay/admob 6.0.0 → 7.0.2

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.
Files changed (60) hide show
  1. package/Package.swift +30 -0
  2. package/QuquplayAdmob.podspec +2 -2
  3. package/README.md +343 -115
  4. package/android/build.gradle +11 -11
  5. package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +17 -0
  6. package/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java +81 -91
  7. package/android/src/main/java/com/getcapacitor/community/admob/consent/AdConsentExecutor.java +17 -21
  8. package/android/src/main/java/com/getcapacitor/community/admob/interstitial/AdInterstitialExecutor.java +17 -21
  9. package/android/src/main/java/com/getcapacitor/community/admob/models/AdOptions.java +10 -0
  10. package/android/src/main/java/com/getcapacitor/community/admob/rewarded/AdRewardExecutor.java +19 -23
  11. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/AdRewardInterstitialExecutor.java +80 -0
  12. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/RewardInterstitialAdPluginEvents.kt +12 -0
  13. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/RewardedInterstitialAdCallbackAndListeners.kt +50 -0
  14. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/models/SsvInfo.kt +20 -0
  15. package/dist/docs.json +399 -749
  16. package/dist/esm/definitions.d.ts +2 -1
  17. package/dist/esm/definitions.js.map +1 -1
  18. package/dist/esm/index.d.ts +1 -0
  19. package/dist/esm/index.js +2 -1
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/reward-interstitial/index.d.ts +4 -0
  22. package/dist/esm/reward-interstitial/index.js +5 -0
  23. package/dist/esm/reward-interstitial/index.js.map +1 -0
  24. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.d.ts +25 -0
  25. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.js +2 -0
  26. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.js.map +1 -0
  27. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.d.ts +32 -0
  28. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js +35 -0
  29. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js.map +1 -0
  30. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.d.ts +30 -0
  31. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.js +2 -0
  32. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.js.map +1 -0
  33. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.d.ts +14 -0
  34. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.js +2 -0
  35. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.js.map +1 -0
  36. package/dist/esm/web.d.ts +2 -0
  37. package/dist/esm/web.js +12 -0
  38. package/dist/esm/web.js.map +1 -1
  39. package/dist/plugin.cjs.js +48 -3
  40. package/dist/plugin.cjs.js.map +1 -1
  41. package/dist/plugin.js +49 -4
  42. package/dist/plugin.js.map +1 -1
  43. package/ios/{Plugin/Plugin.swift → Sources/AdMobPlugin/AdMobPlugin.swift} +46 -4
  44. package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerExecutor.swift +7 -7
  45. package/ios/{Plugin → Sources/AdMobPlugin}/Consent/ConsentExecutor.swift +1 -1
  46. package/ios/{Plugin → Sources/AdMobPlugin}/Interstitial/AdInterstitialExecutor.swift +4 -4
  47. package/ios/{Plugin → Sources/AdMobPlugin}/Rewarded/AdRewardExecutor.swift +4 -4
  48. package/ios/Sources/AdMobPlugin/RewardedInterstitial/AdRewardInterstitialExecutor.swift +86 -0
  49. package/ios/Sources/AdMobPlugin/RewardedInterstitial/RewardInterstitialAdPluginEvents.swift +8 -0
  50. package/ios/Tests/AdMobPluginTests/AdMobPluginTests.swift +15 -0
  51. package/package.json +30 -34
  52. package/ios/Plugin/Info.plist +0 -24
  53. package/ios/Plugin/Plugin.h +0 -10
  54. package/ios/Plugin/Plugin.m +0 -23
  55. /package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerAdPluginEvents.swift +0 -0
  56. /package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerAdSizeEnum.swift +0 -0
  57. /package/ios/{Plugin → Sources/AdMobPlugin}/Helper/AuthorizationStatusEnum.swift +0 -0
  58. /package/ios/{Plugin → Sources/AdMobPlugin}/Interstitial/InterstitialAdPluginEvents.swift +0 -0
  59. /package/ios/{Plugin → Sources/AdMobPlugin}/Models/FullScreenAdEventName.swift +0 -0
  60. /package/ios/{Plugin → Sources/AdMobPlugin}/Rewarded/RewardAdPluginEvents.swift +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/banner/banner-ad-plugin-events.enum.js","esm/banner/banner-ad-position.enum.js","esm/banner/banner-ad-size.enum.js","esm/interstitial/interstitial-ad-plugin-events.enum.js","esm/reward/reward-ad-plugin-events.enum.js","esm/consent/consent-status.enum.js","esm/consent/consent-debug-geography.enum.js","esm/index.js","esm/web.js"],"sourcesContent":["export var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /**\n * Content suitable for general audiences, including families.\n */\n MaxAdContentRating[\"General\"] = \"General\";\n /**\n * Content suitable for most audiences with parental guidance.\n */\n MaxAdContentRating[\"ParentalGuidance\"] = \"ParentalGuidance\";\n /**\n * Content suitable for teen and older audiences.\n */\n MaxAdContentRating[\"Teen\"] = \"Teen\";\n /**\n * Content suitable only for mature audiences.\n */\n MaxAdContentRating[\"MatureAudience\"] = \"MatureAudience\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n//# sourceMappingURL=definitions.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var BannerAdPluginEvents;\n(function (BannerAdPluginEvents) {\n BannerAdPluginEvents[\"SizeChanged\"] = \"bannerAdSizeChanged\";\n BannerAdPluginEvents[\"Loaded\"] = \"bannerAdLoaded\";\n BannerAdPluginEvents[\"FailedToLoad\"] = \"bannerAdFailedToLoad\";\n /**\n * Open \"Adsense\" Event after user click banner\n */\n BannerAdPluginEvents[\"Opened\"] = \"bannerAdOpened\";\n /**\n * Close \"Adsense\" Event after user click banner\n */\n BannerAdPluginEvents[\"Closed\"] = \"bannerAdClosed\";\n /**\n * Similarly, this method should be called when an impression is recorded for the ad by the mediated SDK.\n */\n BannerAdPluginEvents[\"AdImpression\"] = \"bannerAdImpression\";\n})(BannerAdPluginEvents || (BannerAdPluginEvents = {}));\n//# sourceMappingURL=banner-ad-plugin-events.enum.js.map","/**\n * @see https://developer.android.com/reference/android/widget/LinearLayout#attr_android:gravity\n */\nexport var BannerAdPosition;\n(function (BannerAdPosition) {\n /**\n * Banner position be top-center\n */\n BannerAdPosition[\"TOP_CENTER\"] = \"TOP_CENTER\";\n /**\n * Banner position be center\n */\n BannerAdPosition[\"CENTER\"] = \"CENTER\";\n /**\n * Banner position be bottom-center(default)\n */\n BannerAdPosition[\"BOTTOM_CENTER\"] = \"BOTTOM_CENTER\";\n})(BannerAdPosition || (BannerAdPosition = {}));\n//# sourceMappingURL=banner-ad-position.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/ios/banner#banner_sizes\n * https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize\n *\n * */\nexport var BannerAdSize;\n(function (BannerAdSize) {\n /**\n * Mobile Marketing Association (MMA)\n * banner ad size (320x50 density-independent pixels).\n */\n BannerAdSize[\"BANNER\"] = \"BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * full banner ad size (468x60 density-independent pixels).\n */\n BannerAdSize[\"FULL_BANNER\"] = \"FULL_BANNER\";\n /**\n * Large banner ad size (320x100 density-independent pixels).\n */\n BannerAdSize[\"LARGE_BANNER\"] = \"LARGE_BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * medium rectangle ad size (300x250 density-independent pixels).\n */\n BannerAdSize[\"MEDIUM_RECTANGLE\"] = \"MEDIUM_RECTANGLE\";\n /**\n * Interactive Advertising Bureau (IAB)\n * leaderboard ad size (728x90 density-independent pixels).\n */\n BannerAdSize[\"LEADERBOARD\"] = \"LEADERBOARD\";\n /**\n * A dynamically sized banner that is full-width and auto-height.\n */\n BannerAdSize[\"ADAPTIVE_BANNER\"] = \"ADAPTIVE_BANNER\";\n /**\n * @deprecated\n * Will be removed in next AdMob versions use `ADAPTIVE_BANNER`\n * Screen width x 32|50|90\n */\n BannerAdSize[\"SMART_BANNER\"] = \"SMART_BANNER\";\n})(BannerAdSize || (BannerAdSize = {}));\n//# sourceMappingURL=banner-ad-size.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var InterstitialAdPluginEvents;\n(function (InterstitialAdPluginEvents) {\n /**\n * Emits after trying to prepare and Interstitial, when it is loaded and ready to be show\n */\n InterstitialAdPluginEvents[\"Loaded\"] = \"interstitialAdLoaded\";\n /**\n * Emits after trying to prepare and Interstitial, when it could not be loaded\n */\n InterstitialAdPluginEvents[\"FailedToLoad\"] = \"interstitialAdFailedToLoad\";\n /**\n * Emits when the Interstitial ad is visible to the user\n */\n InterstitialAdPluginEvents[\"Showed\"] = \"interstitialAdShowed\";\n /**\n * Emits when the Interstitial ad is failed to show\n */\n InterstitialAdPluginEvents[\"FailedToShow\"] = \"interstitialAdFailedToShow\";\n /**\n * Emits when the Interstitial ad is not visible to the user anymore.\n */\n InterstitialAdPluginEvents[\"Dismissed\"] = \"interstitialAdDismissed\";\n})(InterstitialAdPluginEvents || (InterstitialAdPluginEvents = {}));\n//# sourceMappingURL=interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardAdPluginEvents;\n(function (RewardAdPluginEvents) {\n /**\n * Emits after trying to prepare a RewardAd and the Video is loaded and ready to be show\n */\n RewardAdPluginEvents[\"Loaded\"] = \"onRewardedVideoAdLoaded\";\n /**\n * Emits after trying to prepare a RewardAd when it could not be loaded\n */\n RewardAdPluginEvents[\"FailedToLoad\"] = \"onRewardedVideoAdFailedToLoad\";\n /**\n * Emits when the AdReward video is visible to the user\n */\n RewardAdPluginEvents[\"Showed\"] = \"onRewardedVideoAdShowed\";\n /**\n * Emits when the AdReward video is failed to show\n */\n RewardAdPluginEvents[\"FailedToShow\"] = \"onRewardedVideoAdFailedToShow\";\n /**\n * Emits when the AdReward video is not visible to the user anymore.\n *\n * **Important**: This has nothing to do with the reward it self. This event\n * will emits in this two cases:\n * 1. The user starts the video ad but close it before the reward emit.\n * 2. The user start the video and see it until end, then gets the reward\n * and after that the ad is closed.\n */\n RewardAdPluginEvents[\"Dismissed\"] = \"onRewardedVideoAdDismissed\";\n /**\n * Emits when user get rewarded from AdReward\n */\n RewardAdPluginEvents[\"Rewarded\"] = \"onRewardedVideoAdReward\";\n})(RewardAdPluginEvents || (RewardAdPluginEvents = {}));\n//# sourceMappingURL=reward-ad-plugin-events.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#consentstatus\n *\n * */\nexport var AdmobConsentStatus;\n(function (AdmobConsentStatus) {\n /**\n * User consent not required.\n */\n AdmobConsentStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * User consent already obtained.\n */\n AdmobConsentStatus[\"OBTAINED\"] = \"OBTAINED\";\n /**\n * User consent required but not yet obtained.\n */\n AdmobConsentStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Unknown consent status, AdsConsent.requestInfoUpdate needs to be called to update it.\n */\n AdmobConsentStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(AdmobConsentStatus || (AdmobConsentStatus = {}));\n//# sourceMappingURL=consent-status.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#debuggeography\n *\n * */\nexport var AdmobConsentDebugGeography;\n(function (AdmobConsentDebugGeography) {\n /**\n * Debug geography disabled.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"DISABLED\"] = 0] = \"DISABLED\";\n /**\n * Geography appears as in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"EEA\"] = 1] = \"EEA\";\n /**\n * Geography appears as not in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"NOT_EEA\"] = 2] = \"NOT_EEA\";\n})(AdmobConsentDebugGeography || (AdmobConsentDebugGeography = {}));\n//# sourceMappingURL=consent-debug-geography.enum.js.map","import { registerPlugin } from '@capacitor/core';\nconst AdMob = registerPlugin('AdMob', {\n web: () => import('./web').then(m => new m.AdMobWeb()),\n});\nexport * from './definitions';\nexport * from './banner/index';\nexport * from './interstitial/index';\nexport * from './reward/index';\nexport * from './consent/index';\nexport * from './shared/index';\nexport { AdMob };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { AdmobConsentStatus } from './consent/consent-status.enum';\nexport class AdMobWeb extends WebPlugin {\n async initialize() {\n console.log('initialize');\n }\n async requestTrackingAuthorization() {\n console.log('requestTrackingAuthorization');\n }\n async trackingAuthorizationStatus() {\n return {\n status: 'authorized',\n };\n }\n async requestConsentInfo(options) {\n console.log('requestConsentInfo', options);\n return {\n status: AdmobConsentStatus.REQUIRED,\n isConsentFormAvailable: true,\n };\n }\n async showConsentForm() {\n console.log('showConsentForm');\n return {\n status: AdmobConsentStatus.REQUIRED,\n };\n }\n async resetConsentInfo() {\n console.log('resetConsentInfo');\n }\n async setApplicationMuted(options) {\n console.log('setApplicationMuted', options);\n }\n async setApplicationVolume(options) {\n console.log('setApplicationVolume', options);\n }\n async showBanner(options) {\n console.log('showBanner', options);\n }\n // Hide the banner, remove it from screen, but can show it later\n async hideBanner() {\n console.log('hideBanner');\n }\n // Resume the banner, show it after hide\n async resumeBanner() {\n console.log('resumeBanner');\n }\n // Destroy the banner, remove it from screen.\n async removeBanner() {\n console.log('removeBanner');\n }\n async prepareInterstitial(options) {\n console.log('prepareInterstitial', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showInterstitial() {\n console.log('showInterstitial');\n }\n async prepareRewardVideoAd(options) {\n console.log(options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardVideoAd() {\n return {\n type: '',\n amount: 0,\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["MaxAdContentRating","BannerAdPluginEvents","BannerAdPosition","BannerAdSize","InterstitialAdPluginEvents","RewardAdPluginEvents","AdmobConsentStatus","AdmobConsentDebugGeography","registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/banner/banner-ad-plugin-events.enum.js","esm/banner/banner-ad-position.enum.js","esm/banner/banner-ad-size.enum.js","esm/interstitial/interstitial-ad-plugin-events.enum.js","esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js","esm/reward/reward-ad-plugin-events.enum.js","esm/consent/consent-status.enum.js","esm/consent/consent-debug-geography.enum.js","esm/index.js","esm/web.js"],"sourcesContent":["export var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /**\n * Content suitable for general audiences, including families.\n */\n MaxAdContentRating[\"General\"] = \"General\";\n /**\n * Content suitable for most audiences with parental guidance.\n */\n MaxAdContentRating[\"ParentalGuidance\"] = \"ParentalGuidance\";\n /**\n * Content suitable for teen and older audiences.\n */\n MaxAdContentRating[\"Teen\"] = \"Teen\";\n /**\n * Content suitable only for mature audiences.\n */\n MaxAdContentRating[\"MatureAudience\"] = \"MatureAudience\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n//# sourceMappingURL=definitions.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var BannerAdPluginEvents;\n(function (BannerAdPluginEvents) {\n BannerAdPluginEvents[\"SizeChanged\"] = \"bannerAdSizeChanged\";\n BannerAdPluginEvents[\"Loaded\"] = \"bannerAdLoaded\";\n BannerAdPluginEvents[\"FailedToLoad\"] = \"bannerAdFailedToLoad\";\n /**\n * Open \"Adsense\" Event after user click banner\n */\n BannerAdPluginEvents[\"Opened\"] = \"bannerAdOpened\";\n /**\n * Close \"Adsense\" Event after user click banner\n */\n BannerAdPluginEvents[\"Closed\"] = \"bannerAdClosed\";\n /**\n * Similarly, this method should be called when an impression is recorded for the ad by the mediated SDK.\n */\n BannerAdPluginEvents[\"AdImpression\"] = \"bannerAdImpression\";\n})(BannerAdPluginEvents || (BannerAdPluginEvents = {}));\n//# sourceMappingURL=banner-ad-plugin-events.enum.js.map","/**\n * @see https://developer.android.com/reference/android/widget/LinearLayout#attr_android:gravity\n */\nexport var BannerAdPosition;\n(function (BannerAdPosition) {\n /**\n * Banner position be top-center\n */\n BannerAdPosition[\"TOP_CENTER\"] = \"TOP_CENTER\";\n /**\n * Banner position be center\n */\n BannerAdPosition[\"CENTER\"] = \"CENTER\";\n /**\n * Banner position be bottom-center(default)\n */\n BannerAdPosition[\"BOTTOM_CENTER\"] = \"BOTTOM_CENTER\";\n})(BannerAdPosition || (BannerAdPosition = {}));\n//# sourceMappingURL=banner-ad-position.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/ios/banner#banner_sizes\n * https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize\n *\n * */\nexport var BannerAdSize;\n(function (BannerAdSize) {\n /**\n * Mobile Marketing Association (MMA)\n * banner ad size (320x50 density-independent pixels).\n */\n BannerAdSize[\"BANNER\"] = \"BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * full banner ad size (468x60 density-independent pixels).\n */\n BannerAdSize[\"FULL_BANNER\"] = \"FULL_BANNER\";\n /**\n * Large banner ad size (320x100 density-independent pixels).\n */\n BannerAdSize[\"LARGE_BANNER\"] = \"LARGE_BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * medium rectangle ad size (300x250 density-independent pixels).\n */\n BannerAdSize[\"MEDIUM_RECTANGLE\"] = \"MEDIUM_RECTANGLE\";\n /**\n * Interactive Advertising Bureau (IAB)\n * leaderboard ad size (728x90 density-independent pixels).\n */\n BannerAdSize[\"LEADERBOARD\"] = \"LEADERBOARD\";\n /**\n * A dynamically sized banner that is full-width and auto-height.\n */\n BannerAdSize[\"ADAPTIVE_BANNER\"] = \"ADAPTIVE_BANNER\";\n /**\n * @deprecated\n * Will be removed in next AdMob versions use `ADAPTIVE_BANNER`\n * Screen width x 32|50|90\n */\n BannerAdSize[\"SMART_BANNER\"] = \"SMART_BANNER\";\n})(BannerAdSize || (BannerAdSize = {}));\n//# sourceMappingURL=banner-ad-size.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var InterstitialAdPluginEvents;\n(function (InterstitialAdPluginEvents) {\n /**\n * Emits after trying to prepare and Interstitial, when it is loaded and ready to be show\n */\n InterstitialAdPluginEvents[\"Loaded\"] = \"interstitialAdLoaded\";\n /**\n * Emits after trying to prepare and Interstitial, when it could not be loaded\n */\n InterstitialAdPluginEvents[\"FailedToLoad\"] = \"interstitialAdFailedToLoad\";\n /**\n * Emits when the Interstitial ad is visible to the user\n */\n InterstitialAdPluginEvents[\"Showed\"] = \"interstitialAdShowed\";\n /**\n * Emits when the Interstitial ad is failed to show\n */\n InterstitialAdPluginEvents[\"FailedToShow\"] = \"interstitialAdFailedToShow\";\n /**\n * Emits when the Interstitial ad is not visible to the user anymore.\n */\n InterstitialAdPluginEvents[\"Dismissed\"] = \"interstitialAdDismissed\";\n})(InterstitialAdPluginEvents || (InterstitialAdPluginEvents = {}));\n//# sourceMappingURL=interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardInterstitialAdPluginEvents;\n(function (RewardInterstitialAdPluginEvents) {\n /**\n * Emits after trying to prepare a RewardAd and the Video is loaded and ready to be show\n */\n RewardInterstitialAdPluginEvents[\"Loaded\"] = \"onRewardedInterstitialAdLoaded\";\n /**\n * Emits after trying to prepare a RewardAd when it could not be loaded\n */\n RewardInterstitialAdPluginEvents[\"FailedToLoad\"] = \"onRewardedInterstitialAdFailedToLoad\";\n /**\n * Emits when the AdReward video is visible to the user\n */\n RewardInterstitialAdPluginEvents[\"Showed\"] = \"onRewardedInterstitialAdShowed\";\n /**\n * Emits when the AdReward video is failed to show\n */\n RewardInterstitialAdPluginEvents[\"FailedToShow\"] = \"onRewardedInterstitialAdFailedToShow\";\n /**\n * Emits when the AdReward video is not visible to the user anymore.\n *\n * **Important**: This has nothing to do with the reward it self. This event\n * will emits in this two cases:\n * 1. The user starts the video ad but close it before the reward emit.\n * 2. The user start the video and see it until end, then gets the reward\n * and after that the ad is closed.\n */\n RewardInterstitialAdPluginEvents[\"Dismissed\"] = \"onRewardedInterstitialAdDismissed\";\n /**\n * Emits when user get rewarded from AdReward\n */\n RewardInterstitialAdPluginEvents[\"Rewarded\"] = \"onRewardedInterstitialAdReward\";\n})(RewardInterstitialAdPluginEvents || (RewardInterstitialAdPluginEvents = {}));\n//# sourceMappingURL=reward-interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardAdPluginEvents;\n(function (RewardAdPluginEvents) {\n /**\n * Emits after trying to prepare a RewardAd and the Video is loaded and ready to be show\n */\n RewardAdPluginEvents[\"Loaded\"] = \"onRewardedVideoAdLoaded\";\n /**\n * Emits after trying to prepare a RewardAd when it could not be loaded\n */\n RewardAdPluginEvents[\"FailedToLoad\"] = \"onRewardedVideoAdFailedToLoad\";\n /**\n * Emits when the AdReward video is visible to the user\n */\n RewardAdPluginEvents[\"Showed\"] = \"onRewardedVideoAdShowed\";\n /**\n * Emits when the AdReward video is failed to show\n */\n RewardAdPluginEvents[\"FailedToShow\"] = \"onRewardedVideoAdFailedToShow\";\n /**\n * Emits when the AdReward video is not visible to the user anymore.\n *\n * **Important**: This has nothing to do with the reward it self. This event\n * will emits in this two cases:\n * 1. The user starts the video ad but close it before the reward emit.\n * 2. The user start the video and see it until end, then gets the reward\n * and after that the ad is closed.\n */\n RewardAdPluginEvents[\"Dismissed\"] = \"onRewardedVideoAdDismissed\";\n /**\n * Emits when user get rewarded from AdReward\n */\n RewardAdPluginEvents[\"Rewarded\"] = \"onRewardedVideoAdReward\";\n})(RewardAdPluginEvents || (RewardAdPluginEvents = {}));\n//# sourceMappingURL=reward-ad-plugin-events.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#consentstatus\n *\n * */\nexport var AdmobConsentStatus;\n(function (AdmobConsentStatus) {\n /**\n * User consent not required.\n */\n AdmobConsentStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * User consent already obtained.\n */\n AdmobConsentStatus[\"OBTAINED\"] = \"OBTAINED\";\n /**\n * User consent required but not yet obtained.\n */\n AdmobConsentStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Unknown consent status, AdsConsent.requestInfoUpdate needs to be called to update it.\n */\n AdmobConsentStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(AdmobConsentStatus || (AdmobConsentStatus = {}));\n//# sourceMappingURL=consent-status.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#debuggeography\n *\n * */\nexport var AdmobConsentDebugGeography;\n(function (AdmobConsentDebugGeography) {\n /**\n * Debug geography disabled.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"DISABLED\"] = 0] = \"DISABLED\";\n /**\n * Geography appears as in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"EEA\"] = 1] = \"EEA\";\n /**\n * Geography appears as not in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"NOT_EEA\"] = 2] = \"NOT_EEA\";\n})(AdmobConsentDebugGeography || (AdmobConsentDebugGeography = {}));\n//# sourceMappingURL=consent-debug-geography.enum.js.map","import { registerPlugin } from '@capacitor/core';\nconst AdMob = registerPlugin('AdMob', {\n web: () => import('./web').then((m) => new m.AdMobWeb()),\n});\nexport * from './definitions';\nexport * from './banner/index';\nexport * from './interstitial/index';\nexport * from './reward-interstitial/index';\nexport * from './reward/index';\nexport * from './consent/index';\nexport * from './shared/index';\nexport { AdMob };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { AdmobConsentStatus } from './consent/consent-status.enum';\nexport class AdMobWeb extends WebPlugin {\n async initialize() {\n console.log('initialize');\n }\n async requestTrackingAuthorization() {\n console.log('requestTrackingAuthorization');\n }\n async trackingAuthorizationStatus() {\n return {\n status: 'authorized',\n };\n }\n async requestConsentInfo(options) {\n console.log('requestConsentInfo', options);\n return {\n status: AdmobConsentStatus.REQUIRED,\n isConsentFormAvailable: true,\n };\n }\n async showConsentForm() {\n console.log('showConsentForm');\n return {\n status: AdmobConsentStatus.REQUIRED,\n };\n }\n async resetConsentInfo() {\n console.log('resetConsentInfo');\n }\n async setApplicationMuted(options) {\n console.log('setApplicationMuted', options);\n }\n async setApplicationVolume(options) {\n console.log('setApplicationVolume', options);\n }\n async showBanner(options) {\n console.log('showBanner', options);\n }\n // Hide the banner, remove it from screen, but can show it later\n async hideBanner() {\n console.log('hideBanner');\n }\n // Resume the banner, show it after hide\n async resumeBanner() {\n console.log('resumeBanner');\n }\n // Destroy the banner, remove it from screen.\n async removeBanner() {\n console.log('removeBanner');\n }\n async prepareInterstitial(options) {\n console.log('prepareInterstitial', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showInterstitial() {\n console.log('showInterstitial');\n }\n async prepareRewardVideoAd(options) {\n console.log(options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardVideoAd() {\n return {\n type: '',\n amount: 0,\n };\n }\n async prepareRewardInterstitialAd(options) {\n console.log(options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardInterstitialAd() {\n return {\n type: '',\n amount: 0,\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["MaxAdContentRating","BannerAdPluginEvents","BannerAdPosition","BannerAdSize","InterstitialAdPluginEvents","RewardInterstitialAdPluginEvents","RewardAdPluginEvents","AdmobConsentStatus","AdmobConsentDebugGeography","registerPlugin","WebPlugin"],"mappings":"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"}
@@ -5,14 +5,35 @@ import GoogleMobileAds
5
5
  import AppTrackingTransparency
6
6
  #endif
7
7
 
8
- @objc(AdMob)
9
- public class AdMob: CAPPlugin {
8
+ @objc(AdMobPlugin)
9
+ public class AdMobPlugin: CAPPlugin, CAPBridgedPlugin {
10
+ public let identifier = "AdMob"
11
+ public let jsName = "AdMob"
12
+ public let pluginMethods: [CAPPluginMethod] = [
13
+ CAPPluginMethod(name: "initialize", returnType: CAPPluginReturnPromise),
14
+ CAPPluginMethod(name: "trackingAuthorizationStatus", returnType: CAPPluginReturnPromise),
15
+ CAPPluginMethod(name: "requestConsentInfo", returnType: CAPPluginReturnPromise),
16
+ CAPPluginMethod(name: "requestTrackingAuthorization", returnType: CAPPluginReturnPromise),
17
+ CAPPluginMethod(name: "showConsentForm", returnType: CAPPluginReturnPromise),
18
+ CAPPluginMethod(name: "resetConsentInfo", returnType: CAPPluginReturnPromise),
19
+ CAPPluginMethod(name: "setApplicationMuted", returnType: CAPPluginReturnPromise),
20
+ CAPPluginMethod(name: "setApplicationVolume", returnType: CAPPluginReturnPromise),
21
+ CAPPluginMethod(name: "showBanner", returnType: CAPPluginReturnPromise),
22
+ CAPPluginMethod(name: "resumeBanner", returnType: CAPPluginReturnPromise),
23
+ CAPPluginMethod(name: "hideBanner", returnType: CAPPluginReturnPromise),
24
+ CAPPluginMethod(name: "removeBanner", returnType: CAPPluginReturnPromise),
25
+ CAPPluginMethod(name: "prepareInterstitial", returnType: CAPPluginReturnPromise),
26
+ CAPPluginMethod(name: "showInterstitial", returnType: CAPPluginReturnPromise),
27
+ CAPPluginMethod(name: "prepareRewardVideoAd", returnType: CAPPluginReturnPromise),
28
+ CAPPluginMethod(name: "showRewardVideoAd", returnType: CAPPluginReturnPromise)
29
+ ]
10
30
 
11
31
  var testingDevices: [String] = []
12
32
 
13
33
  private let bannerExecutor = BannerExecutor()
14
34
  private let adInterstitialExecutor = AdInterstitialExecutor()
15
35
  private let adRewardExecutor = AdRewardExecutor()
36
+ private let adRewardInterstitialExecutor = AdRewardInterstitialExecutor()
16
37
  private let consentExecutor = ConsentExecutor()
17
38
 
18
39
  /**
@@ -23,6 +44,8 @@ public class AdMob: CAPPlugin {
23
44
  self.bannerExecutor.plugin = self
24
45
  self.adInterstitialExecutor.plugin = self
25
46
  self.adRewardExecutor.plugin = self
47
+ self.adRewardInterstitialExecutor.plugin = self
48
+ self.adInterstitialExecutor.plugin = self
26
49
  self.consentExecutor.plugin = self
27
50
  self.setRequestConfiguration(call)
28
51
 
@@ -59,7 +82,7 @@ public class AdMob: CAPPlugin {
59
82
 
60
83
  @objc func setApplicationVolume(_ call: CAPPluginCall) {
61
84
  if var volume = call.getFloat("volume") {
62
- //Clamp volumes.
85
+ // Clamp volumes.
63
86
  if volume < 0.0 {volume = 0.0} else if volume > 1.0 {volume = 1.0}
64
87
 
65
88
  GADMobileAds.sharedInstance().applicationVolume = volume
@@ -123,7 +146,7 @@ public class AdMob: CAPPlugin {
123
146
 
124
147
  /**
125
148
  * AdMob: Rewarded Ads
126
- * https://developers.google.com/ad-manager/mobile-ads-sdk/ios/rewarded-ads?hl=ja
149
+ * https://developers.google.com/ad-manager/mobile-ads-sdk/ios/rewarded-ads
127
150
  */
128
151
  @objc func prepareRewardVideoAd(_ call: CAPPluginCall) {
129
152
  let adUnitID = getAdId(call, "ca-app-pub-3940256099942544/1712485313")
@@ -140,6 +163,25 @@ public class AdMob: CAPPlugin {
140
163
  }
141
164
  }
142
165
 
166
+ /**
167
+ * AdMob: Rewarded Interstitial Ads
168
+ * https://developers.google.com/ad-manager/mobile-ads-sdk/ios/rewarded-interstitial
169
+ */
170
+ @objc func prepareRewardInterstitialAd(_ call: CAPPluginCall) {
171
+ let adUnitID = getAdId(call, "ca-app-pub-3940256099942544/6978759866")
172
+ let request = self.GADRequestWithOption(call.getBool("npa") ?? false)
173
+
174
+ DispatchQueue.main.async {
175
+ self.adRewardInterstitialExecutor.prepareRewardInterstitialAd(call, request, adUnitID)
176
+ }
177
+ }
178
+
179
+ @objc func showRewardInterstitialAd(_ call: CAPPluginCall) {
180
+ DispatchQueue.main.async {
181
+ self.adRewardInterstitialExecutor.showRewardInterstitialAd(call)
182
+ }
183
+ }
184
+
143
185
  @objc func trackingAuthorizationStatus(_ call: CAPPluginCall) {
144
186
  DispatchQueue.main.async {
145
187
  if #available(iOS 14, *) {
@@ -3,7 +3,7 @@ import Capacitor
3
3
  import GoogleMobileAds
4
4
 
5
5
  class BannerExecutor: NSObject, GADBannerViewDelegate {
6
- public weak var plugin: AdMob?
6
+ weak var plugin: AdMobPlugin?
7
7
  var bannerView: GADBannerView!
8
8
 
9
9
  func showBanner(_ call: CAPPluginCall, _ request: GADRequest, _ adUnitID: String) {
@@ -144,7 +144,7 @@ class BannerExecutor: NSObject, GADBannerViewDelegate {
144
144
  }
145
145
 
146
146
  /// Tells the delegate an ad request loaded an ad.
147
- public func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
147
+ func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
148
148
  NSLog("bannerViewDidReceiveAd")
149
149
 
150
150
  self.plugin?.notifyListeners(BannerAdPluginEvents.SizeChanged.rawValue, data: [
@@ -155,8 +155,8 @@ class BannerExecutor: NSObject, GADBannerViewDelegate {
155
155
  }
156
156
 
157
157
  /// Tells the delegate an ad request failed.
158
- public func bannerView(_ bannerView: GADBannerView,
159
- didFailToReceiveAdWithError error: Error) {
158
+ func bannerView(_ bannerView: GADBannerView,
159
+ didFailToReceiveAdWithError error: Error) {
160
160
  NSLog("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
161
161
  self.removeBannerViewToView()
162
162
  self.plugin?.notifyListeners(BannerAdPluginEvents.SizeChanged.rawValue, data: [
@@ -169,18 +169,18 @@ class BannerExecutor: NSObject, GADBannerViewDelegate {
169
169
  ])
170
170
  }
171
171
 
172
- public func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
172
+ func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
173
173
  self.plugin?.notifyListeners(BannerAdPluginEvents.AdImpression.rawValue, data: [:])
174
174
  }
175
175
 
176
176
  /// Tells the delegate that a full-screen view will be presented in response
177
177
  /// to the user clicking on an ad.
178
- public func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
178
+ func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
179
179
  self.plugin?.notifyListeners(BannerAdPluginEvents.Opened.rawValue, data: [:])
180
180
  }
181
181
 
182
182
  /// Tells the delegate that the full-screen view will be dismissed.
183
- public func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
183
+ func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
184
184
  self.plugin?.notifyListeners(BannerAdPluginEvents.Closed.rawValue, data: [:])
185
185
  }
186
186
  }
@@ -4,7 +4,7 @@ import GoogleMobileAds
4
4
  import UserMessagingPlatform
5
5
 
6
6
  class ConsentExecutor: NSObject {
7
- public weak var plugin: AdMob?
7
+ weak var plugin: AdMobPlugin?
8
8
 
9
9
  func requestConsentInfo(_ call: CAPPluginCall, _ debugGeography: Int, _ testDeviceIdentifiers: [String], _ tagForUnderAgeOfConsent: Bool) {
10
10
  let parameters = UMPRequestParameters()
@@ -3,7 +3,7 @@ import Capacitor
3
3
  import GoogleMobileAds
4
4
 
5
5
  class AdInterstitialExecutor: NSObject, GADFullScreenContentDelegate {
6
- public weak var plugin: AdMob?
6
+ weak var plugin: AdMobPlugin?
7
7
  var interstitial: GADInterstitialAd!
8
8
 
9
9
  func prepareInterstitial(_ call: CAPPluginCall, _ request: GADRequest, _ adUnitID: String) {
@@ -45,7 +45,7 @@ class AdInterstitialExecutor: NSObject, GADFullScreenContentDelegate {
45
45
  }
46
46
  }
47
47
 
48
- public func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
48
+ func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
49
49
  NSLog("InterstitialFullScreenDelegate Ad failed to present full screen content with error \(error.localizedDescription).")
50
50
  self.plugin?.notifyListeners(InterstitialAdPluginEvents.FailedToShow.rawValue, data: [
51
51
  "code": 0,
@@ -53,12 +53,12 @@ class AdInterstitialExecutor: NSObject, GADFullScreenContentDelegate {
53
53
  ])
54
54
  }
55
55
 
56
- public func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
56
+ func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
57
57
  NSLog("InterstitialFullScreenDelegate Ad did present full screen content.")
58
58
  self.plugin?.notifyListeners(InterstitialAdPluginEvents.Showed.rawValue, data: [:])
59
59
  }
60
60
 
61
- public func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
61
+ func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
62
62
  NSLog("InterstitialFullScreenDelegate Ad did dismiss full screen content.")
63
63
  self.plugin?.notifyListeners(InterstitialAdPluginEvents.Dismissed.rawValue, data: [:])
64
64
  }
@@ -3,7 +3,7 @@ import Capacitor
3
3
  import GoogleMobileAds
4
4
 
5
5
  class AdRewardExecutor: NSObject, GADFullScreenContentDelegate {
6
- public weak var plugin: AdMob?
6
+ weak var plugin: AdMobPlugin?
7
7
  var rewardedAd: GADRewardedAd!
8
8
 
9
9
  func prepareRewardVideoAd(_ call: CAPPluginCall, _ request: GADRequest, _ adUnitID: String) {
@@ -66,7 +66,7 @@ class AdRewardExecutor: NSObject, GADFullScreenContentDelegate {
66
66
  }
67
67
  }
68
68
 
69
- public func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
69
+ func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
70
70
  NSLog("RewardFullScreenDelegate Ad failed to present full screen content with error \(error.localizedDescription).")
71
71
  self.plugin?.notifyListeners(RewardAdPluginEvents.FailedToShow.rawValue, data: [
72
72
  "code": 0,
@@ -74,12 +74,12 @@ class AdRewardExecutor: NSObject, GADFullScreenContentDelegate {
74
74
  ])
75
75
  }
76
76
 
77
- public func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
77
+ func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
78
78
  NSLog("RewardFullScreenDelegate Ad did present full screen content.")
79
79
  self.plugin?.notifyListeners(RewardAdPluginEvents.Showed.rawValue, data: [:])
80
80
  }
81
81
 
82
- public func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
82
+ func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
83
83
  NSLog("RewardFullScreenDelegate Ad did dismiss full screen content.")
84
84
  self.plugin?.notifyListeners(RewardAdPluginEvents.Dismissed.rawValue, data: [:])
85
85
  }
@@ -0,0 +1,86 @@
1
+ import Foundation
2
+ import Capacitor
3
+ import GoogleMobileAds
4
+
5
+ class AdRewardInterstitialExecutor: NSObject, GADFullScreenContentDelegate {
6
+ weak var plugin: AdMobPlugin?
7
+ var rewardedInterstitialAd: GADRewardedInterstitialAd!
8
+
9
+ func prepareRewardInterstitialAd(_ call: CAPPluginCall, _ request: GADRequest, _ adUnitID: String) {
10
+ GADRewardedInterstitialAd.load(
11
+ withAdUnitID: adUnitID,
12
+ request: request,
13
+ completionHandler: { (ad, error) in
14
+ if let error = error {
15
+ NSLog("Rewarded ad failed to load with error: \(error.localizedDescription)")
16
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.FailedToLoad.rawValue, data: [
17
+ "code": 0,
18
+ "message": error.localizedDescription
19
+ ])
20
+ call.reject("Loading failed")
21
+ return
22
+ }
23
+
24
+ self.rewardedInterstitialAd = ad
25
+
26
+ if let providedOptions = call.getObject("ssv") {
27
+ let ssvOptions = GADServerSideVerificationOptions()
28
+
29
+ if let customData = providedOptions["customData"] as? String {
30
+ NSLog("Sending Custom Data: \(customData) to SSV callback")
31
+ ssvOptions.customRewardString = customData
32
+ }
33
+
34
+ if let userId = providedOptions["userId"] as? String {
35
+ NSLog("Sending UserId: \(userId) to SSV callback")
36
+ ssvOptions.userIdentifier = userId
37
+ }
38
+
39
+ self.rewardedInterstitialAd?.serverSideVerificationOptions = ssvOptions
40
+ }
41
+
42
+ self.rewardedInterstitialAd?.fullScreenContentDelegate = self
43
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.Loaded.rawValue, data: [
44
+ "adUnitId": adUnitID
45
+ ])
46
+ call.resolve([
47
+ "adUnitId": adUnitID
48
+ ])
49
+ }
50
+ )
51
+ }
52
+
53
+ func showRewardInterstitialAd(_ call: CAPPluginCall) {
54
+ if let rootViewController = plugin?.getRootVC() {
55
+ if let ad = self.rewardedInterstitialAd {
56
+ ad.present(fromRootViewController: rootViewController,
57
+ userDidEarnRewardHandler: {
58
+ let reward = ad.adReward
59
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.Rewarded.rawValue, data: ["type": reward.type, "amount": reward.amount])
60
+ call.resolve(["type": reward.type, "amount": reward.amount])
61
+ }
62
+ )
63
+ } else {
64
+ call.reject("Reward Video is Not Ready Yet")
65
+ }
66
+ }
67
+ }
68
+
69
+ func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
70
+ NSLog("RewardFullScreenDelegate Ad failed to present full screen content with error \(error.localizedDescription).")
71
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.FailedToShow.rawValue, data: [
72
+ "code": 0,
73
+ "message": error.localizedDescription
74
+ ])
75
+ }
76
+
77
+ func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
78
+ NSLog("RewardFullScreenDelegate Ad did present full screen content.")
79
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.Showed.rawValue, data: [:])
80
+ }
81
+
82
+ func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
83
+ NSLog("RewardFullScreenDelegate Ad did dismiss full screen content.")
84
+ self.plugin?.notifyListeners(RewardInterstitialAdPluginEvents.Dismissed.rawValue, data: [:])
85
+ }
86
+ }
@@ -0,0 +1,8 @@
1
+ public enum RewardInterstitialAdPluginEvents: String {
2
+ case Loaded = "onRewardedInterstitialAdLoaded"
3
+ case FailedToLoad = "onRewardedInterstitialAdFailedToLoad"
4
+ case Showed = "onRewardedInterstitialAdShowed"
5
+ case FailedToShow = "onRewardedInterstitialAdFailedToShow"
6
+ case Dismissed = "onRewardedInterstitialAdDismissed"
7
+ case Rewarded = "onRewardedInterstitialAdReward"
8
+ }
@@ -0,0 +1,15 @@
1
+ import XCTest
2
+ @testable import AdMobPlugin
3
+
4
+ class AdMobTests: XCTestCase {
5
+ func testEcho() {
6
+ // This is an example of a functional test case for a plugin.
7
+ // Use XCTAssert and related functions to verify your tests produce the correct results.
8
+
9
+ // let implementation = AdMob()
10
+ // let value = "Hello, World!"
11
+ // let result = implementation.echo(value)
12
+ //
13
+ // XCTAssertEqual(value, result)
14
+ }
15
+ }
package/package.json CHANGED
@@ -1,19 +1,21 @@
1
1
  {
2
2
  "name": "@ququplay/admob",
3
- "version": "6.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "A native plugin for AdMob",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/esm/index.d.ts",
8
8
  "unpkg": "dist/plugin.js",
9
9
  "engines": {
10
- "node": ">=18.0.0"
10
+ "node": ">=20.0.0"
11
11
  },
12
12
  "files": [
13
13
  "android/src/main/",
14
14
  "android/build.gradle",
15
15
  "dist/",
16
- "ios/Plugin/",
16
+ "ios/Sources",
17
+ "ios/Tests",
18
+ "Package.swift",
17
19
  "QuquplayAdmob.podspec"
18
20
  ],
19
21
  "author": "Masahiko Sakakibara <sakakibara@rdlabo.jp>",
@@ -27,49 +29,46 @@
27
29
  },
28
30
  "scripts": {
29
31
  "verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
30
- "verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -sdk iphoneos && cd ..",
32
+ "verify:ios": "xcodebuild -scheme QuquplayAdmob -destination generic/platform=iOS",
31
33
  "verify:android": "cd android && ./gradlew clean build test && cd ..",
32
34
  "verify:web": "npm run build",
33
35
  "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
34
- "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- autocorrect --format",
36
+ "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format",
35
37
  "eslint": "eslint src/. --ext ts",
36
- "prettier": "prettier \"{src/*.ts,**/*.java}\"",
38
+ "prettier": "prettier \"{src/*.ts,**/*.java}\" --plugin=prettier-plugin-java",
37
39
  "swiftlint": "node-swiftlint",
38
40
  "docgen": "docgen --api AdMobPlugin --output-readme README.md --output-json dist/docs.json",
39
- "build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.js",
41
+ "build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
40
42
  "clean": "rimraf ./dist",
41
43
  "watch": "tsc --watch",
42
44
  "prepublishOnly": "npm run build",
43
- "release": "np --no-tests"
45
+ "release": "np --no-tests --any-branch",
46
+ "prepare": "husky"
44
47
  },
45
48
  "devDependencies": {
46
- "@capacitor/android": "^6.0.0",
47
- "@capacitor/cli": "^6.0.0",
48
- "@capacitor/core": "^6.0.0",
49
- "@capacitor/docgen": "git+https://github.com/rdlabo/capacitor-docgen.git#feat/support_extends_build",
50
- "@capacitor/ios": "^6.0.0",
51
- "@ionic/eslint-config": "^0.3.0",
52
- "@ionic/prettier-config": "^1.0.1",
53
- "@ionic/swiftlint-config": "^1.1.2",
54
- "eslint": "^7.11.0",
55
- "husky": "^4.3.8",
56
- "lint-staged": "^11.0.0",
49
+ "@capacitor/android": "^7.0.0",
50
+ "@capacitor/cli": "^7.0.0",
51
+ "@capacitor/core": "^7.0.0",
52
+ "@capacitor/docgen": "github:rdlabo/capacitor-docgen#feat/support_extends_build",
53
+ "@capacitor/ios": "^7.0.0",
54
+ "@ionic/eslint-config": "^0.4.0",
55
+ "@ionic/prettier-config": "^4.0.0",
56
+ "@ionic/swiftlint-config": "^2.0.0",
57
+ "@typescript-eslint/eslint-plugin": "^5.27.1",
58
+ "eslint": "^8.57.0",
59
+ "husky": "^9.1.7",
60
+ "lint-staged": "^15.2.10",
57
61
  "np": "^8.0.4",
58
62
  "pre-commit": "^1.2.2",
59
- "prettier": "~2.3.0",
60
- "prettier-plugin-java": "~1.0.2",
61
- "rimraf": "^3.0.2",
62
- "rollup": "^2.32.0",
63
- "swiftlint": "^1.0.1",
63
+ "prettier": "^3.4.2",
64
+ "prettier-plugin-java": "^2.6.6",
65
+ "rimraf": "^6.0.1",
66
+ "rollup": "^4.30.1",
67
+ "swiftlint": "^2.0.0",
64
68
  "typescript": "~4.1.5"
65
69
  },
66
70
  "dependencies": {
67
- "@capacitor/core": "^6.0.0"
68
- },
69
- "husky": {
70
- "hooks": {
71
- "pre-commit": "lint-staged"
72
- }
71
+ "@capacitor/core": "^7.0.0"
73
72
  },
74
73
  "lint-staged": {
75
74
  "*.{ts}": [
@@ -79,13 +78,10 @@
79
78
  "*.{java}": [
80
79
  "npm run prettier -- --write",
81
80
  "git add"
82
- ],
83
- "*.swift": [
84
- "npm run swiftlint -- autocorrect --format",
85
- "git add"
86
81
  ]
87
82
  },
88
83
  "prettier": "@ionic/prettier-config",
84
+ "swiftlint": "@ionic/swiftlint-config",
89
85
  "eslintConfig": {
90
86
  "extends": "@ionic/eslint-config/recommended"
91
87
  },
@@ -1,24 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>CFBundleDevelopmentRegion</key>
6
- <string>$(DEVELOPMENT_LANGUAGE)</string>
7
- <key>CFBundleExecutable</key>
8
- <string>$(EXECUTABLE_NAME)</string>
9
- <key>CFBundleIdentifier</key>
10
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
- <key>CFBundleInfoDictionaryVersion</key>
12
- <string>6.0</string>
13
- <key>CFBundleName</key>
14
- <string>$(PRODUCT_NAME)</string>
15
- <key>CFBundlePackageType</key>
16
- <string>FMWK</string>
17
- <key>CFBundleShortVersionString</key>
18
- <string>1.0</string>
19
- <key>CFBundleVersion</key>
20
- <string>$(CURRENT_PROJECT_VERSION)</string>
21
- <key>NSPrincipalClass</key>
22
- <string></string>
23
- </dict>
24
- </plist>
@@ -1,10 +0,0 @@
1
- #import <UIKit/UIKit.h>
2
-
3
- //! Project version number for Plugin.
4
- FOUNDATION_EXPORT double PluginVersionNumber;
5
-
6
- //! Project version string for Plugin.
7
- FOUNDATION_EXPORT const unsigned char PluginVersionString[];
8
-
9
- // In this header, you should import all the public headers of your framework using statements like #import <Plugin/PublicHeader.h>
10
-
@@ -1,23 +0,0 @@
1
- #import <Foundation/Foundation.h>
2
- #import <Capacitor/Capacitor.h>
3
-
4
- // Define the plugin using the CAP_PLUGIN Macro, and
5
- // each method the plugin supports using the CAP_PLUGIN_METHOD macro.
6
- CAP_PLUGIN(AdMob, "AdMob",
7
- CAP_PLUGIN_METHOD(initialize, CAPPluginReturnPromise);
8
- CAP_PLUGIN_METHOD(trackingAuthorizationStatus, CAPPluginReturnPromise);
9
- CAP_PLUGIN_METHOD(requestConsentInfo, CAPPluginReturnPromise);
10
- CAP_PLUGIN_METHOD(requestTrackingAuthorization, CAPPluginReturnPromise);
11
- CAP_PLUGIN_METHOD(showConsentForm, CAPPluginReturnPromise);
12
- CAP_PLUGIN_METHOD(resetConsentInfo, CAPPluginReturnPromise);
13
- CAP_PLUGIN_METHOD(setApplicationMuted, CAPPluginReturnPromise);
14
- CAP_PLUGIN_METHOD(setApplicationVolume, CAPPluginReturnPromise);
15
- CAP_PLUGIN_METHOD(showBanner, CAPPluginReturnPromise);
16
- CAP_PLUGIN_METHOD(resumeBanner, CAPPluginReturnPromise);
17
- CAP_PLUGIN_METHOD(hideBanner, CAPPluginReturnPromise);
18
- CAP_PLUGIN_METHOD(removeBanner, CAPPluginReturnPromise);
19
- CAP_PLUGIN_METHOD(prepareInterstitial, CAPPluginReturnPromise);
20
- CAP_PLUGIN_METHOD(showInterstitial, CAPPluginReturnPromise);
21
- CAP_PLUGIN_METHOD(prepareRewardVideoAd, CAPPluginReturnPromise);
22
- CAP_PLUGIN_METHOD(showRewardVideoAd, CAPPluginReturnPromise);
23
- )