2
2
#import " UADSWebViewApp.h"
3
3
#import " UADSAdUnitEvent.h"
4
4
#import " UADSWebViewEventCategory.h"
5
+ #import " UADSApiWebPlayer.h"
5
6
#import " UnityAds.h"
6
7
#import < sys/utsname.h>
7
8
@@ -11,7 +12,7 @@ @interface UADSViewController ()
11
12
12
13
@implementation UADSViewController
13
14
14
- - (instancetype )initWithViews : (NSArray *)views supportedOrientations : (NSNumber *)supportedOrientations statusBarHidden : (BOOL )statusBarHidden shouldAutorotate : (BOOL )shouldAutorotate isTransparent : (BOOL )isTransparent {
15
+ - (instancetype )initWithViews : (NSArray *)views supportedOrientations : (NSNumber *)supportedOrientations statusBarHidden : (BOOL )statusBarHidden shouldAutorotate : (BOOL )shouldAutorotate isTransparent : (BOOL )isTransparent homeIndicatorAutoHidden : ( BOOL ) homeIndicatorAutoHidden {
15
16
self = [super init ];
16
17
17
18
if (self) {
@@ -20,6 +21,7 @@ - (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *
20
21
[self setStatusBarHidden: statusBarHidden];
21
22
[self setSupportedOrientations: [supportedOrientations intValue ]];
22
23
[self setAutorotate: shouldAutorotate];
24
+ [self setHomeIndicatorAutoHidden: homeIndicatorAutoHidden];
23
25
}
24
26
25
27
[[UADSWebViewApp getCurrentApp ] sendEvent: NSStringFromAdUnitEvent(kUnityAdsViewControllerInit ) category: NSStringFromWebViewEventCategory(kUnityAdsWebViewEventCategoryAdunit ) param1: nil ];
@@ -58,6 +60,7 @@ - (void)viewDidDisappear:(BOOL)animated {
58
60
59
61
[self destroyVideoPlayer ];
60
62
[self destroyVideoView ];
63
+ [self destroyWebPlayerView ];
61
64
[[[UADSWebViewApp getCurrentApp ] webView ] removeFromSuperview ];
62
65
[[UADSWebViewApp getCurrentApp ] placeWebViewToBackgroundView ];
63
66
[[UADSWebViewApp getCurrentApp ] sendEvent: NSStringFromAdUnitEvent(kUnityAdsViewControllerDidDisappear ) category: NSStringFromWebViewEventCategory(kUnityAdsWebViewEventCategoryAdunit ) param1: nil ];
@@ -74,6 +77,8 @@ - (void)setViewFrame:(NSString *)view x:(int)x y:(int)y width:(int)width height:
74
77
}
75
78
else if ([view isEqualToString: @" webview" ]) {
76
79
targetView = [[UADSWebViewApp getCurrentApp ] webView ];
80
+ } else if ([view isEqualToString: @" webplayer" ]) {
81
+ targetView = self.webPlayerView ;
77
82
}
78
83
79
84
if (targetView) {
@@ -107,10 +112,27 @@ - (void)setTransform:(float)transform {
107
112
self.view .transform = CGAffineTransformMakeRotation (transform);
108
113
}
109
114
115
+ - (void )setHomeIndicatorAutoHidden : (BOOL )homeIndicatorAutoHidden {
116
+ _homeIndicatorAutoHidden = homeIndicatorAutoHidden;
117
+
118
+ SEL setNeedsUpdateOfHomeIndicatorAutoHiddenSelector = NSSelectorFromString (@" setNeedsUpdateOfHomeIndicatorAutoHidden" );
119
+ if ([self respondsToSelector: setNeedsUpdateOfHomeIndicatorAutoHiddenSelector]) {
120
+ IMP setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp = [self methodForSelector: setNeedsUpdateOfHomeIndicatorAutoHiddenSelector];
121
+ if (setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp) {
122
+ void (*setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorFunc)(id , SEL ) = (void *)setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp;
123
+ setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorFunc (self, setNeedsUpdateOfHomeIndicatorAutoHiddenSelector);
124
+ }
125
+ }
126
+ }
127
+
110
128
- (BOOL )prefersStatusBarHidden {
111
129
return self.statusBarHidden ;
112
130
}
113
131
132
+ - (BOOL )prefersHomeIndicatorAutoHidden {
133
+ return self.homeIndicatorAutoHidden ;
134
+ }
135
+
114
136
- (BOOL )isTransparent {
115
137
return _transparent;
116
138
}
@@ -141,6 +163,9 @@ - (void)setViews:(NSArray<NSString*>*)views {
141
163
[self destroyVideoPlayer ];
142
164
[self destroyVideoView ];
143
165
}
166
+ else if ([view isEqualToString: @" webplayer" ]) {
167
+ [self destroyWebPlayerView ];
168
+ }
144
169
else if ([view isEqualToString: @" webview" ]) {
145
170
[[[UADSWebViewApp getCurrentApp ] webView ] removeFromSuperview ];
146
171
}
@@ -155,6 +180,10 @@ - (void)setViews:(NSArray<NSString*>*)views {
155
180
[self createVideoPlayer ];
156
181
[self handleViewPlacement: self .videoView];
157
182
}
183
+ else if ([view isEqualToString: @" webplayer" ]) {
184
+ [self createWebPlayerView ];
185
+ [self handleViewPlacement: self .webPlayerView];
186
+ }
158
187
else if ([view isEqualToString: @" webview" ]) {
159
188
if ([UADSWebViewApp getCurrentApp ]) {
160
189
[self handleViewPlacement: [[UADSWebViewApp getCurrentApp ] webView ]];
@@ -209,6 +238,20 @@ - (void)destroyVideoView {
209
238
self.videoView = NULL ;
210
239
}
211
240
241
+ - (void )createWebPlayerView {
242
+ if (![self webPlayerView ]) {
243
+ [self setWebPlayerView: [[UADSWebPlayerView alloc ] initWithFrame: [self getRect ] webPlayerSettings: [UADSApiWebPlayer getWebPlayerSettings ]]];
244
+ [[self webPlayerView ] setEventSettings: [UADSApiWebPlayer getWebPlayerEventSettings ]];
245
+ }
246
+ }
247
+
248
+ - (void )destroyWebPlayerView {
249
+ if ([self webPlayerView ]) {
250
+ [self .webPlayerView removeFromSuperview ];
251
+ }
252
+ self.webPlayerView = nil ;
253
+ }
254
+
212
255
- (void )destroyVideoPlayer {
213
256
if ([self videoPlayer ]) {
214
257
[self .videoPlayer stop ];
0 commit comments