@ququplay/admob 5.3.2 → 7.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 (64) hide show
  1. package/Package.swift +30 -0
  2. package/README.md +378 -150
  3. package/android/build.gradle +13 -13
  4. package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +17 -0
  5. package/android/src/main/java/com/getcapacitor/community/admob/banner/BannerExecutor.java +81 -91
  6. package/android/src/main/java/com/getcapacitor/community/admob/consent/AdConsentExecutor.java +45 -42
  7. package/android/src/main/java/com/getcapacitor/community/admob/interstitial/AdInterstitialExecutor.java +17 -21
  8. package/android/src/main/java/com/getcapacitor/community/admob/models/AdOptions.java +10 -0
  9. package/android/src/main/java/com/getcapacitor/community/admob/rewarded/AdRewardExecutor.java +19 -23
  10. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/AdRewardInterstitialExecutor.java +80 -0
  11. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/RewardInterstitialAdPluginEvents.kt +12 -0
  12. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/RewardedInterstitialAdCallbackAndListeners.kt +50 -0
  13. package/android/src/main/java/com/getcapacitor/community/admob/rewardedinterstitial/models/SsvInfo.kt +20 -0
  14. package/dist/docs.json +433 -783
  15. package/dist/esm/banner/banner-definitions.interface.d.ts +18 -18
  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/interstitial/interstitial-definitions.interface.d.ts +5 -5
  22. package/dist/esm/private/validate-all-events-implemented.type.d.ts +1 -1
  23. package/dist/esm/reward/reward-definitions.interface.d.ts +12 -12
  24. package/dist/esm/reward-interstitial/index.d.ts +4 -0
  25. package/dist/esm/reward-interstitial/index.js +5 -0
  26. package/dist/esm/reward-interstitial/index.js.map +1 -0
  27. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.d.ts +25 -0
  28. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.js +2 -0
  29. package/dist/esm/reward-interstitial/reward-interstitial-ad-options.interface.js.map +1 -0
  30. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.d.ts +32 -0
  31. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js +35 -0
  32. package/dist/esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js.map +1 -0
  33. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.d.ts +30 -0
  34. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.js +2 -0
  35. package/dist/esm/reward-interstitial/reward-interstitial-definitions.interface.js.map +1 -0
  36. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.d.ts +14 -0
  37. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.js +2 -0
  38. package/dist/esm/reward-interstitial/reward-interstitial-item.interface.js.map +1 -0
  39. package/dist/esm/web.d.ts +2 -2
  40. package/dist/esm/web.js +12 -9
  41. package/dist/esm/web.js.map +1 -1
  42. package/dist/plugin.cjs.js +48 -12
  43. package/dist/plugin.cjs.js.map +1 -1
  44. package/dist/plugin.js +49 -13
  45. package/dist/plugin.js.map +1 -1
  46. package/ios/{Plugin/Plugin.swift → Sources/AdMobPlugin/AdMobPlugin.swift} +50 -8
  47. package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerExecutor.swift +11 -23
  48. package/ios/{Plugin → Sources/AdMobPlugin}/Consent/ConsentExecutor.swift +1 -1
  49. package/ios/{Plugin → Sources/AdMobPlugin}/Interstitial/AdInterstitialExecutor.swift +4 -4
  50. package/ios/{Plugin → Sources/AdMobPlugin}/Rewarded/AdRewardExecutor.swift +4 -4
  51. package/ios/Sources/AdMobPlugin/RewardedInterstitial/AdRewardInterstitialExecutor.swift +86 -0
  52. package/ios/Sources/AdMobPlugin/RewardedInterstitial/RewardInterstitialAdPluginEvents.swift +8 -0
  53. package/ios/Tests/AdMobPluginTests/AdMobPluginTests.swift +15 -0
  54. package/package.json +31 -35
  55. package/QuquplayAdmob.podspec +0 -19
  56. package/ios/Plugin/Info.plist +0 -24
  57. package/ios/Plugin/Plugin.h +0 -10
  58. package/ios/Plugin/Plugin.m +0 -23
  59. /package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerAdPluginEvents.swift +0 -0
  60. /package/ios/{Plugin → Sources/AdMobPlugin}/Banner/BannerAdSizeEnum.swift +0 -0
  61. /package/ios/{Plugin → Sources/AdMobPlugin}/Helper/AuthorizationStatusEnum.swift +0 -0
  62. /package/ios/{Plugin → Sources/AdMobPlugin}/Interstitial/InterstitialAdPluginEvents.swift +0 -0
  63. /package/ios/{Plugin → Sources/AdMobPlugin}/Models/FullScreenAdEventName.swift +0 -0
  64. /package/ios/{Plugin → Sources/AdMobPlugin}/Rewarded/RewardAdPluginEvents.swift +0 -0
@@ -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,20 +1,22 @@
1
1
  {
2
2
  "name": "@ququplay/admob",
3
- "version": "5.3.2",
3
+ "version": "7.0.1",
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": ">=16.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/",
17
- "QuquplayAdmob.podspec"
16
+ "ios/Sources",
17
+ "ios/Tests",
18
+ "Package.swift",
19
+ "CapacitorCommunityAdmob.podspec"
18
20
  ],
19
21
  "author": "Masahiko Sakakibara <sakakibara@rdlabo.jp>",
20
22
  "license": "MIT",
@@ -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 CapacitorCommunityAdmob -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": "5.0.0",
47
- "@capacitor/cli": "5.0.0",
48
- "@capacitor/core": "5.0.0",
49
- "@capacitor/docgen": "git+https://github.com/rdlabo/capacitor-docgen.git#feat/support_extends_build",
50
- "@capacitor/ios": "next",
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": "next"
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,19 +0,0 @@
1
- require 'json'
2
-
3
- package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
4
-
5
- Pod::Spec.new do |s|
6
- s.name = 'QuquplayAdmob'
7
- s.version = package['version']
8
- s.summary = package['description']
9
- s.license = package['license']
10
- s.homepage = package['repository']['url']
11
- s.author = package['author']
12
- s.source = { :git => package['repository']['url'], :tag => s.version.to_s }
13
- s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
14
- s.ios.deployment_target = '13.0'
15
- s.swift_version = '5.1'
16
- s.static_framework = true
17
- s.dependency 'Capacitor'
18
- s.dependency 'Google-Mobile-Ads-SDK', '10.12.0'
19
- end
@@ -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
- )