@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.
- package/CapacitorCommunityAdmob.podspec +2 -2
- package/Package.swift +2 -2
- package/README.md +204 -22
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +73 -23
- package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdManager.kt +86 -0
- package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdPlugin.kt +104 -0
- package/android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdPluginEvents.kt +9 -0
- package/android/src/main/java/com/getcapacitor/community/admob/models/AdOptions.java +10 -0
- package/dist/docs.json +256 -42
- package/dist/esm/app-open/app-open-ad-options.interface.d.ts +3 -0
- package/dist/esm/app-open/app-open-ad-options.interface.js +2 -0
- package/dist/esm/app-open/app-open-ad-options.interface.js.map +1 -0
- package/dist/esm/app-open/app-open-ad-plugin-events.enum.d.ts +7 -0
- package/dist/esm/app-open/app-open-ad-plugin-events.enum.js +9 -0
- package/dist/esm/app-open/app-open-ad-plugin-events.enum.js.map +1 -0
- package/dist/esm/app-open/app-open-definitions.interface.d.ts +27 -0
- package/dist/esm/app-open/app-open-definitions.interface.js +2 -0
- package/dist/esm/app-open/app-open-definitions.interface.js.map +1 -0
- package/dist/esm/app-open/index.d.ts +3 -0
- package/dist/esm/app-open/index.js +4 -0
- package/dist/esm/app-open/index.js.map +1 -0
- package/dist/esm/definitions.d.ts +2 -1
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +9 -0
- package/dist/esm/web.js +16 -5
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +24 -5
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +24 -5
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/AdMobPlugin/AdMobPlugin.swift +30 -4
- package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdManager.swift +101 -0
- package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdPlugin.swift +71 -0
- package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdPluginEvents.swift +7 -0
- package/ios/Sources/AdMobPlugin/Banner/BannerExecutor.swift +6 -6
- 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
|
+
}
|
|
@@ -20,17 +20,17 @@ class BannerExecutor: NSObject, BannerViewDelegate {
|
|
|
20
20
|
switch adSize {
|
|
21
21
|
case "BANNER":
|
|
22
22
|
bannerSize = AdSizeBanner
|
|
23
|
-
|
|
23
|
+
case "LARGE_BANNER":
|
|
24
24
|
bannerSize = AdSizeLargeBanner
|
|
25
|
-
|
|
25
|
+
case "FULL_BANNER":
|
|
26
26
|
bannerSize = AdSizeFullBanner
|
|
27
|
-
|
|
27
|
+
case "LEADERBOARD":
|
|
28
28
|
bannerSize = AdSizeLeaderboard
|
|
29
|
-
|
|
29
|
+
case "MEDIUM_RECTANGLE":
|
|
30
30
|
bannerSize = AdSizeMediumRectangle
|
|
31
|
-
|
|
31
|
+
case "SMART_BANNER":
|
|
32
32
|
bannerSize = kGADAdSizeSmartBannerPortrait
|
|
33
|
-
|
|
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.
|