@capacitor-community/admob 8.0.0-0 → 8.0.1

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 (40) hide show
  1. package/CapacitorCommunityAdmob.podspec +2 -2
  2. package/Package.swift +2 -2
  3. package/README.md +204 -22
  4. package/android/build.gradle +2 -2
  5. package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +73 -23
  6. package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdManager.kt +86 -0
  7. package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdPlugin.kt +104 -0
  8. package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdPluginEvents.kt +9 -0
  9. package/android/src/main/java/com/getcapacitor/community/admob/models/AdOptions.java +10 -0
  10. package/dist/docs.json +256 -42
  11. package/dist/esm/app-open/app-open-ad-options.interface.d.ts +3 -0
  12. package/dist/esm/app-open/app-open-ad-options.interface.js +2 -0
  13. package/dist/esm/app-open/app-open-ad-options.interface.js.map +1 -0
  14. package/dist/esm/app-open/app-open-ad-plugin-events.enum.d.ts +7 -0
  15. package/dist/esm/app-open/app-open-ad-plugin-events.enum.js +9 -0
  16. package/dist/esm/app-open/app-open-ad-plugin-events.enum.js.map +1 -0
  17. package/dist/esm/app-open/app-open-definitions.interface.d.ts +27 -0
  18. package/dist/esm/app-open/app-open-definitions.interface.js +2 -0
  19. package/dist/esm/app-open/app-open-definitions.interface.js.map +1 -0
  20. package/dist/esm/app-open/index.d.ts +3 -0
  21. package/dist/esm/app-open/index.js +4 -0
  22. package/dist/esm/app-open/index.js.map +1 -0
  23. package/dist/esm/definitions.d.ts +2 -1
  24. package/dist/esm/definitions.js.map +1 -1
  25. package/dist/esm/index.d.ts +1 -0
  26. package/dist/esm/index.js +1 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/web.d.ts +9 -0
  29. package/dist/esm/web.js +16 -5
  30. package/dist/esm/web.js.map +1 -1
  31. package/dist/plugin.cjs.js +24 -5
  32. package/dist/plugin.cjs.js.map +1 -1
  33. package/dist/plugin.js +24 -5
  34. package/dist/plugin.js.map +1 -1
  35. package/ios/Sources/AdMobPlugin/AdMobPlugin.swift +30 -4
  36. package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdManager.swift +101 -0
  37. package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdPlugin.swift +71 -0
  38. package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdPluginEvents.swift +7 -0
  39. package/ios/Sources/AdMobPlugin/Banner/BannerExecutor.swift +6 -6
  40. package/package.json +2 -1
@@ -0,0 +1,71 @@
1
+ import Foundation
2
+ import Capacitor
3
+ import UIKit
4
+
5
+ @objc public class AppOpenAdPlugin: NSObject {
6
+ private var appOpenAdManager: AppOpenAdManager?
7
+ private var currentAdUnitId: String?
8
+
9
+ @objc func loadAppOpen(
10
+ _ call: CAPPluginCall,
11
+ notify: @escaping (String, [String: Any]) -> Void
12
+ ) {
13
+ guard let adUnitId = call.getString("adId") else {
14
+ call.reject("adId is required")
15
+ return
16
+ }
17
+ if appOpenAdManager == nil || currentAdUnitId != adUnitId {
18
+ appOpenAdManager = AppOpenAdManager(adUnitId: adUnitId)
19
+ currentAdUnitId = adUnitId
20
+ }
21
+ DispatchQueue.main.async {
22
+ self.appOpenAdManager?.loadAd(onLoaded: {
23
+ notify(AppOpenAdPluginEvents.Loaded.rawValue, ["adUnitId": adUnitId])
24
+ call.resolve(["adUnitId": adUnitId])
25
+ }, onFailed: { error in
26
+ let message = error?.localizedDescription ?? "Failed to load App Open Ad"
27
+ notify(AppOpenAdPluginEvents.FailedToLoad.rawValue, [
28
+ "code": 0,
29
+ "message": message
30
+ ])
31
+ call.reject(message)
32
+ })
33
+ }
34
+ }
35
+
36
+ @objc func showAppOpen(
37
+ _ call: CAPPluginCall,
38
+ getRootViewController: @escaping () -> UIViewController?,
39
+ notify: @escaping (String, [String: Any]) -> Void
40
+ ) {
41
+ DispatchQueue.main.async {
42
+ guard let manager = self.appOpenAdManager, manager.isAdLoaded() else {
43
+ call.reject("App Open Ad is not loaded")
44
+ return
45
+ }
46
+
47
+ if let rootVC = getRootViewController() {
48
+ self.appOpenAdManager?.showAdIfAvailable(rootViewController: rootVC, onOpened: {
49
+ notify(AppOpenAdPluginEvents.Opened.rawValue, [:])
50
+ }, onClosed: {
51
+ notify(AppOpenAdPluginEvents.Closed.rawValue, [:])
52
+ call.resolve()
53
+ }, onFailedToShow: { error in
54
+ let message = error?.localizedDescription ?? "Failed to show App Open Ad"
55
+ notify(AppOpenAdPluginEvents.FailedToShow.rawValue, [
56
+ "code": 0,
57
+ "message": message
58
+ ])
59
+ call.reject(message)
60
+ })
61
+ } else {
62
+ call.reject("No rootViewController")
63
+ }
64
+ }
65
+ }
66
+
67
+ @objc func isAppOpenLoaded(_ call: CAPPluginCall) {
68
+ let loaded = appOpenAdManager?.isAdLoaded() ?? false
69
+ call.resolve(["value": loaded])
70
+ }
71
+ }
@@ -0,0 +1,7 @@
1
+ public enum AppOpenAdPluginEvents: String {
2
+ case Loaded = "appOpenAdLoaded"
3
+ case FailedToLoad = "appOpenAdFailedToLoad"
4
+ case Opened = "appOpenAdOpened"
5
+ case Closed = "appOpenAdClosed"
6
+ case FailedToShow = "appOpenAdFailedToShow"
7
+ }
@@ -20,17 +20,17 @@ class BannerExecutor: NSObject, BannerViewDelegate {
20
20
  switch adSize {
21
21
  case "BANNER":
22
22
  bannerSize = AdSizeBanner
23
- case "LARGE_BANNER":
23
+ case "LARGE_BANNER":
24
24
  bannerSize = AdSizeLargeBanner
25
- case "FULL_BANNER":
25
+ case "FULL_BANNER":
26
26
  bannerSize = AdSizeFullBanner
27
- case "LEADERBOARD":
27
+ case "LEADERBOARD":
28
28
  bannerSize = AdSizeLeaderboard
29
- case "MEDIUM_RECTANGLE":
29
+ case "MEDIUM_RECTANGLE":
30
30
  bannerSize = AdSizeMediumRectangle
31
- case "SMART_BANNER":
31
+ case "SMART_BANNER":
32
32
  bannerSize = kGADAdSizeSmartBannerPortrait
33
- default: // ADAPTIVE_BANNER
33
+ default: // ADAPTIVE_BANNER
34
34
  let frame = { () -> CGRect in
35
35
  // Here safe area is taken into account, hence the view frame is used
36
36
  // after the view has been laid out.
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@capacitor-community/admob",
3
- "version": "8.0.0-0",
3
+ "private": false,
4
+ "version": "8.0.1",
4
5
  "description": "A native plugin for AdMob",
5
6
  "main": "dist/plugin.cjs.js",
6
7
  "module": "dist/esm/index.js",