@thealteroffice/react-native-adgeist 0.0.35-beta → 0.0.37-beta
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/Adgeist.podspec +7 -4
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/adgeist/components/HTML5AdViewManagerImpl.kt +43 -42
- package/ios/AdgeistImpl.swift +11 -130
- package/ios/Frameworks/AdgeistKit.xcframework/Info.plist +44 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/AdgeistKit +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Headers/AdgeistKit.h +11 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Info.plist +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.abi.json +2429 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.private.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/module.modulemap +6 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/PrivacyInfo.xcprivacy +46 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/ad_view.html +57 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/adcard-beta.js +556 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/AdgeistKit +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Headers/AdgeistKit.h +11 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Info.plist +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.abi.json +2429 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +2429 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +66 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/module.modulemap +6 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/PrivacyInfo.xcprivacy +46 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/ad_view.html +57 -0
- package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/adcard-beta.js +556 -0
- package/ios/NativeHTML5AdManager.mm +34 -9
- package/ios/NativeHTML5AdView.swift +48 -107
- package/lib/module/constants.js +1 -1
- package/lib/typescript/src/constants.d.ts +1 -1
- package/package.json +9 -2
- package/src/constants.ts +1 -1
|
@@ -9,32 +9,34 @@ import React
|
|
|
9
9
|
@objc func onAdOpened(_ view: NativeHTML5AdView)
|
|
10
10
|
@objc func onAdClosed(_ view: NativeHTML5AdView)
|
|
11
11
|
@objc func onAdClicked(_ view: NativeHTML5AdView)
|
|
12
|
+
@objc(onAdWarning:warning:) func onAdWarning(_ view: NativeHTML5AdView, warning: String)
|
|
13
|
+
@objc(onAdSizeChanged:width:height:) func onAdSizeChanged(_ view: NativeHTML5AdView, width: Double, height: Double)
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
// MARK: - Main Swift View (Exposed to Objective-C++)
|
|
15
17
|
@objc(NativeHTML5AdView)
|
|
16
18
|
@objcMembers
|
|
17
19
|
public class NativeHTML5AdView: UIView {
|
|
18
|
-
|
|
20
|
+
|
|
19
21
|
// MARK: Public Props (accessible from .mm)
|
|
20
22
|
@objc public var adUnitID: String?
|
|
21
23
|
@objc public var adSize: NSDictionary?
|
|
22
|
-
@objc public var adType: String?
|
|
23
24
|
@objc public var adIsResponsive: Bool = false
|
|
24
|
-
|
|
25
|
+
@objc public var reserveSpace: Bool = true
|
|
26
|
+
|
|
25
27
|
// MARK: Events (Old Architecture)
|
|
26
28
|
@objc public var onAdLoaded: ((_ body: [String: Any]) -> Void)?
|
|
27
29
|
@objc public var onAdFailedToLoad: ((_ body: [String: Any]) -> Void)?
|
|
28
30
|
@objc public var onAdOpened: ((_ body: [String: Any]) -> Void)?
|
|
29
31
|
@objc public var onAdClosed: ((_ body: [String: Any]) -> Void)?
|
|
30
32
|
@objc public var onAdClicked: ((_ body: [String: Any]) -> Void)?
|
|
33
|
+
@objc public var onAdWarning: ((_ body: [String: Any]) -> Void)?
|
|
34
|
+
@objc public var onAdSizeChanged: ((_ body: [String: Any]) -> Void)?
|
|
31
35
|
|
|
32
36
|
// MARK: Delegate (used to send events back to manager)
|
|
33
37
|
@objc public weak var delegate: NativeHTML5AdDelegate?
|
|
34
38
|
|
|
35
|
-
// MARK: Private Ad View & Listener
|
|
36
39
|
private var adView: AdView?
|
|
37
|
-
private var adListener: NativeHTML5AdListener?
|
|
38
40
|
|
|
39
41
|
public override init(frame: CGRect) {
|
|
40
42
|
super.init(frame: frame)
|
|
@@ -48,12 +50,11 @@ public class NativeHTML5AdView: UIView {
|
|
|
48
50
|
|
|
49
51
|
public override func layoutSubviews() {
|
|
50
52
|
super.layoutSubviews()
|
|
53
|
+
adView?.frame = bounds
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
@objc public func triggerViewWillAppear() {
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
56
|
+
@objc public func triggerViewWillAppear() {}
|
|
57
|
+
|
|
57
58
|
@objc public func reloadAd() {
|
|
58
59
|
cleanupAdView()
|
|
59
60
|
embedAdView()
|
|
@@ -67,126 +68,66 @@ public class NativeHTML5AdView: UIView {
|
|
|
67
68
|
@objc public func destroy() {
|
|
68
69
|
cleanupAdView()
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
|
|
71
72
|
private func cleanupAdView() {
|
|
72
|
-
adView?.
|
|
73
|
+
adView?.onEvent = nil
|
|
73
74
|
adView?.removeFromSuperview()
|
|
74
75
|
adView = nil
|
|
75
|
-
adListener = nil
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
private func embedAdView() {
|
|
79
|
-
guard let adUnitID = adUnitID else {
|
|
80
|
-
|
|
79
|
+
guard let adUnitID = adUnitID, !adUnitID.isEmpty else {
|
|
80
|
+
emitFailedToLoad("Ad unit ID is required")
|
|
81
81
|
return
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
let
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
adView.adIsResponsive = adIsResponsive
|
|
84
|
+
let dict = adSize as? [String: Any]
|
|
85
|
+
let width = adIsResponsive ? nil : dimension(dict?["width"])
|
|
86
|
+
let height = dimension(dict?["height"])
|
|
88
87
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
let adView = AdView(adUnitId: adUnitID, width: width, height: height, reserveSpace: reserveSpace)
|
|
89
|
+
adView.frame = bounds
|
|
90
|
+
adView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
91
|
+
adView.onEvent = { [weak self, weak adView] event in
|
|
92
|
+
DispatchQueue.main.async {
|
|
93
|
+
guard let self = self, let adView = adView, adView === self.adView else { return }
|
|
94
|
+
self.handle(event, from: adView)
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
// Handle adType with default value of BANNER
|
|
96
|
-
let adTypeStr = (adType ?? "BANNER").uppercased()
|
|
97
|
-
|
|
98
|
-
switch adTypeStr {
|
|
99
|
-
case "BANNER":
|
|
100
|
-
adView.adType = .BANNER
|
|
101
|
-
case "DISPLAY":
|
|
102
|
-
adView.adType = .DISPLAY
|
|
103
|
-
case "COMPANION":
|
|
104
|
-
adView.adType = .COMPANION
|
|
105
|
-
default:
|
|
106
|
-
delegate?.onAdFailedToLoad(self, error: "Invalid ad type: \(adTypeStr)")
|
|
107
|
-
return
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
let listener = NativeHTML5AdListener(view: self)
|
|
111
|
-
self.adListener = listener
|
|
112
|
-
adView.setAdListener(listener)
|
|
113
|
-
|
|
114
98
|
self.adView = adView
|
|
115
99
|
addSubview(adView)
|
|
116
|
-
|
|
117
|
-
let request = AdRequest.AdRequestBuilder().build()
|
|
118
|
-
adView.loadAd(request)
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// MARK: - Ad Listener (Bridge to delegate)
|
|
123
|
-
private class NativeHTML5AdListener: AdListener {
|
|
124
|
-
private weak var view: NativeHTML5AdView?
|
|
125
|
-
|
|
126
|
-
init(view: NativeHTML5AdView) {
|
|
127
|
-
self.view = view
|
|
128
|
-
super.init()
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
override func onAdLoaded() {
|
|
132
|
-
if let view = view {
|
|
133
|
-
// Old Architecture
|
|
134
|
-
if let onAdLoaded = view.onAdLoaded {
|
|
135
|
-
onAdLoaded([:])
|
|
136
|
-
}
|
|
137
|
-
// New Architecture (or if delegate is used)
|
|
138
|
-
view.delegate?.onAdLoaded(view)
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
override func onAdFailedToLoad(_ errorMessage: String) {
|
|
143
|
-
if let view = view {
|
|
144
|
-
// Old Architecture
|
|
145
|
-
if let onAdFailedToLoad = view.onAdFailedToLoad {
|
|
146
|
-
let errorDict = ["error": errorMessage]
|
|
147
|
-
if Thread.isMainThread {
|
|
148
|
-
onAdFailedToLoad(errorDict)
|
|
149
|
-
} else {
|
|
150
|
-
DispatchQueue.main.async {
|
|
151
|
-
onAdFailedToLoad(errorDict)
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// New Architecture (or if delegate is used)
|
|
156
|
-
view.delegate?.onAdFailedToLoad(view, error: errorMessage)
|
|
157
|
-
}
|
|
100
|
+
adView.load()
|
|
158
101
|
}
|
|
159
102
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
103
|
+
private func handle(_ event: AdgeistEvent, from adView: AdView) {
|
|
104
|
+
switch event.type {
|
|
105
|
+
case .adLoaded:
|
|
106
|
+
onAdLoaded?([:])
|
|
107
|
+
delegate?.onAdLoaded(self)
|
|
108
|
+
let size = adView.intrinsicContentSize
|
|
109
|
+
if size.width > 0 && size.height > 0 {
|
|
110
|
+
onAdSizeChanged?(["width": Double(size.width), "height": Double(size.height)])
|
|
111
|
+
delegate?.onAdSizeChanged(self, width: Double(size.width), height: Double(size.height))
|
|
165
112
|
}
|
|
166
|
-
|
|
167
|
-
|
|
113
|
+
case .adClicked:
|
|
114
|
+
onAdClicked?([:])
|
|
115
|
+
delegate?.onAdClicked(self)
|
|
116
|
+
case .adNoFill, .adNetworkError:
|
|
117
|
+
emitFailedToLoad(event.message)
|
|
118
|
+
case .adWarning:
|
|
119
|
+
onAdWarning?(["warning": event.message])
|
|
120
|
+
delegate?.onAdWarning(self, warning: event.message)
|
|
168
121
|
}
|
|
169
122
|
}
|
|
170
123
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if let onAdOpened = view.onAdOpened {
|
|
175
|
-
onAdOpened([:])
|
|
176
|
-
}
|
|
177
|
-
// New Architecture (or if delegate is used)
|
|
178
|
-
view.delegate?.onAdOpened(view)
|
|
179
|
-
}
|
|
124
|
+
private func emitFailedToLoad(_ message: String) {
|
|
125
|
+
onAdFailedToLoad?(["error": message])
|
|
126
|
+
delegate?.onAdFailedToLoad(self, error: message)
|
|
180
127
|
}
|
|
181
128
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
if let onAdClosed = view.onAdClosed {
|
|
186
|
-
onAdClosed([:])
|
|
187
|
-
}
|
|
188
|
-
// New Architecture (or if delegate is used)
|
|
189
|
-
view.delegate?.onAdClosed(view)
|
|
190
|
-
}
|
|
129
|
+
private func dimension(_ value: Any?) -> CGFloat? {
|
|
130
|
+
guard let number = value as? NSNumber, number.doubleValue > 0 else { return nil }
|
|
131
|
+
return CGFloat(number.doubleValue)
|
|
191
132
|
}
|
|
192
133
|
}
|
package/lib/module/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const PACKAGE_VERSION_TAG = "RN";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.0.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.0.37";
|
|
3
3
|
export declare const HTML_5_AD_NATIVE_COMPONENT_NAME = "HTML5AdNativeComponent";
|
|
4
4
|
//# sourceMappingURL=constants.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thealteroffice/react-native-adgeist",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.37-beta",
|
|
4
4
|
"description": "Publishers can integrate our SDK to connect their ad spaces to the AdGeist marketplace.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
|
@@ -39,9 +39,16 @@
|
|
|
39
39
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
40
40
|
"set-env": "node scripts/set-env.js",
|
|
41
41
|
"sync-version": "node scripts/sync-version.js",
|
|
42
|
-
"
|
|
42
|
+
"fetch-adgeistkit": "node scripts/fetch-ios-native-adgeistkit.js",
|
|
43
|
+
"update-adgeistkit": "node scripts/update-adgeistkit.js",
|
|
44
|
+
"prepare": "yarn sync-version && yarn fetch-adgeistkit && bob build",
|
|
43
45
|
"release": "release-it"
|
|
44
46
|
},
|
|
47
|
+
"adgeistKit": {
|
|
48
|
+
"version": "1.0.24-beta.2",
|
|
49
|
+
"url": "https://github.com/the-alter-office/adgeist-publisher-ios-sdk/releases/download/1.0.24-beta.2/AdgeistKit.xcframework.zip",
|
|
50
|
+
"checksum": "ff1850115ce44df9a80a27d14422d2e5c97727d7cf576272739ad00cb20bea15"
|
|
51
|
+
},
|
|
45
52
|
"keywords": [
|
|
46
53
|
"react-native",
|
|
47
54
|
"ios",
|
package/src/constants.ts
CHANGED