Skip to content

Commit c32780b

Browse files
authored
Merge pull request #716 from adjust/v4383
Version 4.38.3
2 parents 2fd82b1 + a4f410b commit c32780b

File tree

7 files changed

+71
-6
lines changed

7 files changed

+71
-6
lines changed

Adjust.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = "Adjust"
3-
s.version = "4.38.2"
3+
s.version = "4.38.3"
44
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
55
s.homepage = "https://github.com/adjust/ios_sdk"
66
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
77
s.author = { "Adjust" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.38.2" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.38.3" }
99
s.ios.deployment_target = '9.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust/ADJUtil.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
static NSRegularExpression *shortUniversalLinkRegex = nil;
3636
static NSRegularExpression *excludedDeeplinkRegex = nil;
3737

38-
static NSString * const kClientSdk = @"ios4.38.2";
38+
static NSString * const kClientSdk = @"ios4.38.3";
3939
static NSString * const kDeeplinkParam = @"deep_link=";
4040
static NSString * const kSchemeDelimiter = @"://";
4141
static NSString * const kDefaultScheme = @"AdjustUniversalScheme";

Adjust/Adjust.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Adjust.h
33
// Adjust SDK
44
//
5-
// V4.38.2
5+
// V4.38.3
66
// Created by Christian Wellenbrock (@wellle) on 23rd July 2013.
77
// Copyright (c) 2012-2021 Adjust GmbH. All rights reserved.
88
//

AdjustBridge/AdjustBridgeRegister.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ + (NSString *)adjust_js {
280280
if (this.sdkPrefix) {
281281
return this.sdkPrefix;
282282
} else {
283-
return 'web-bridge4.38.2';
283+
return 'web-bridge4.38.3';
284284
}
285285
},
286286
setTestOptions: function(testOptions) {

AdjustBridge/WebViewJavascriptBridge/WKWebViewJavascriptBridge.m

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,39 @@ - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigati
163163
}
164164
}
165165

166+
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences * _Nonnull))decisionHandler API_AVAILABLE(ios(13.0)){
167+
if (webView != _webView) { return; }
168+
NSURL *url = navigationAction.request.URL;
169+
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
170+
171+
if ([_base isWebViewJavascriptBridgeURL:url]) {
172+
if ([_base isBridgeLoadedURL:url]) {
173+
[_base injectJavascriptFile];
174+
} else if ([_base isQueueMessageURL:url]) {
175+
[self WKFlushMessageQueue];
176+
} else {
177+
[_base logUnkownMessage:url];
178+
}
179+
decisionHandler(WKNavigationActionPolicyCancel, preferences);
180+
return;
181+
}
182+
183+
if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:preferences:decisionHandler:)]) {
184+
[_webViewDelegate webView:webView decidePolicyForNavigationAction:navigationAction preferences:preferences decisionHandler:decisionHandler];
185+
} else {
186+
decisionHandler(WKNavigationActionPolicyAllow, preferences);
187+
}
188+
}
189+
190+
- (void)webView:(WKWebView *)webView navigationAction:(WKNavigationAction *)navigationAction didBecomeDownload:(WKDownload *)download API_AVAILABLE(ios(14.5)){
191+
if (webView != _webView) { return; }
192+
193+
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
194+
if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:navigationAction:didBecomeDownload:)]) {
195+
[strongDelegate webView:webView navigationAction:navigationAction didBecomeDownload:download];
196+
}
197+
}
198+
166199
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
167200
if (webView != _webView) { return; }
168201

@@ -172,6 +205,14 @@ - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation
172205
}
173206
}
174207

208+
- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation {
209+
if (webView != _webView) { return; }
210+
211+
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
212+
if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:didReceiveServerRedirectForProvisionalNavigation:)]) {
213+
[strongDelegate webView:webView didReceiveServerRedirectForProvisionalNavigation:navigation];
214+
}
215+
}
175216

176217
- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error {
177218
if (webView != _webView) { return; }
@@ -191,6 +232,24 @@ - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation
191232
}
192233
}
193234

235+
- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView {
236+
if (webView != _webView) { return; }
237+
238+
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
239+
if (strongDelegate && [strongDelegate respondsToSelector:@selector(webViewWebContentProcessDidTerminate:)]) {
240+
[strongDelegate webViewWebContentProcessDidTerminate:webView];
241+
}
242+
}
243+
244+
- (void)webView:(WKWebView *)webView navigationResponse:(WKNavigationResponse *)navigationResponse didBecomeDownload:(WKDownload *)download API_AVAILABLE(ios(14.5)){
245+
if (webView != _webView) { return; }
246+
247+
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
248+
if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:navigationResponse:didBecomeDownload:)]) {
249+
[strongDelegate webView:webView navigationResponse:navigationResponse didBecomeDownload:download];
250+
}
251+
}
252+
194253
- (NSString*) _evaluateJavascript:(NSString*)javascriptCommand {
195254
[_webView evaluateJavaScript:javascriptCommand completionHandler:nil];
196255
return NULL;

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
### Version 4.38.3 (23rd May 2024)
2+
#### Fixed
3+
- Added missing `WKNavigationDelegate` methods to the `WebBridge` implementation.
4+
5+
---
6+
17
### Version 4.38.2 (30th April 2024)
28
#### Added
39
- Added sending of the additional SDK observability parameters for debugging purposes.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.38.2
1+
4.38.3

0 commit comments

Comments
 (0)