Skip to content

Commit d50e74a

Browse files
author
Martin Dinh
committed
Merge branch '301-app-crash-when-tapping-feedback' into 'master'
Resolve "App crash when tapping feedback" Closes #301 See merge request pace/mobile/ios/pace-cloud-sdk!339
2 parents f1849e8 + 6092065 commit d50e74a

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

PACECloudSDK.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@
281281
3B3FC8F527FED6F5008B3F7F /* PACECloudSDKDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3FC8F227FED6E7008B3F7F /* PACECloudSDKDelegate.swift */; };
282282
3B40F83325D2A8C100F892E2 /* InvalidationTokenCache+Slim.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B40F83225D2A8C100F892E2 /* InvalidationTokenCache+Slim.swift */; };
283283
3B4666292805C24A00268713 /* BiometryTOTPData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B5FBC0425F282C500AE93BF /* BiometryTOTPData.swift */; };
284+
3B4B8BE328EC755D0062963C /* URL+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B4B8BE228EC755D0062963C /* URL+Extension.swift */; };
285+
3B4B8BE428EC785B0062963C /* URL+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B4B8BE228EC755D0062963C /* URL+Extension.swift */; };
284286
3B51D6D428D88DA300ECA65D /* SDKUserDefaultsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B51D6D328D88DA300ECA65D /* SDKUserDefaultsTests.swift */; };
285287
3B51D6D628D894A200ECA65D /* SDKKeychainTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B51D6D528D894A200ECA65D /* SDKKeychainTests.swift */; };
286288
3B53F3762845E65D00E751FE /* PCPOILocationBasedApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B2FB20128450BF100E8CD0C /* PCPOILocationBasedApps.swift */; };
@@ -1269,6 +1271,7 @@
12691271
3B394BF228698C7D005621EC /* CDNAPITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDNAPITests.swift; sourceTree = "<group>"; };
12701272
3B3FC8F227FED6E7008B3F7F /* PACECloudSDKDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PACECloudSDKDelegate.swift; sourceTree = "<group>"; };
12711273
3B40F83225D2A8C100F892E2 /* InvalidationTokenCache+Slim.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "InvalidationTokenCache+Slim.swift"; sourceTree = "<group>"; };
1274+
3B4B8BE228EC755D0062963C /* URL+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+Extension.swift"; sourceTree = "<group>"; };
12721275
3B51D6D328D88DA300ECA65D /* SDKUserDefaultsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDKUserDefaultsTests.swift; sourceTree = "<group>"; };
12731276
3B51D6D528D894A200ECA65D /* SDKKeychainTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDKKeychainTests.swift; sourceTree = "<group>"; };
12741277
3B5503F02539E61C00C291F1 /* LiveData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveData.swift; sourceTree = "<group>"; };
@@ -2151,6 +2154,7 @@
21512154
3B9B640C266F6F2D00B2DC27 /* UIWindow+Extension.swift */,
21522155
3BEECBCA26402EA000A8EA56 /* URLRequest+Extension.swift */,
21532156
3B8E3D562654EB4500E0A6D1 /* URLSessionConfiguration+Extension.swift */,
2157+
3B4B8BE228EC755D0062963C /* URL+Extension.swift */,
21542158
);
21552159
path = Extensions;
21562160
sourceTree = "<group>";
@@ -4179,6 +4183,7 @@
41794183
3B970A6C2542D9BB0072F6BA /* Notification+Extension.swift in Sources */,
41804184
8447A3B125CAAE740095BEF1 /* UserAPIDeleteUser.swift in Sources */,
41814185
9A906BBD284637D700463618 /* PCPayPaymentMethodZGMCreateRequest.swift in Sources */,
4186+
3B4B8BE328EC755D0062963C /* URL+Extension.swift in Sources */,
41824187
3B76F75F257648B0008D8F9A /* HttpUrlError.swift in Sources */,
41834188
3B855327253D7052001F7B66 /* MimeTypes.swift in Sources */,
41844189
3B98704D268E06AE00A0458F /* GetConfigResult.swift in Sources */,
@@ -4751,6 +4756,7 @@
47514756
8418E22C25B1AD2600D3722B /* API.swift in Sources */,
47524757
3B987096268E06AE00A0458F /* OpenURLInNewTabRequest.swift in Sources */,
47534758
92EDDDDD25A7461500E480F4 /* POIKit+Slim.swift in Sources */,
4759+
3B4B8BE428EC785B0062963C /* URL+Extension.swift in Sources */,
47544760
8418E29A25B1B85E00D3722B /* APIRequestUtils.swift in Sources */,
47554761
3B987072268E06AE00A0458F /* ImageDataResult.swift in Sources */,
47564762
3B987086268E06AE00A0458F /* GetAccessTokenRequest.swift in Sources */,

PACECloudSDK/AppKit/AppManagement/AppWebViewDelegate.swift

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ class AppWebViewDelegate: NSObject, WKNavigationDelegate, UIScrollViewDelegate,
2828
}
2929

3030
// We only want http & https to be handled by the webview itself
31-
guard url.isFileURL || url.scheme == "http" || url.scheme == "https" else {
31+
guard url.isFileURL || url.isHttpScheme || url.isHttpsScheme else {
3232
UIApplication.shared.open(url)
3333

3434
decisionHandler(.cancel)
3535

36-
AppKitLogger.v("[AppViewController] Canceled navigation and passed handling to system.")
36+
AppKitLogger.v("[AppViewController] Canceled navigation and passed handling to system for url \(url.absoluteString).")
3737

3838
return
3939
}
@@ -47,10 +47,8 @@ class AppWebViewDelegate: NSObject, WKNavigationDelegate, UIScrollViewDelegate,
4747
windowFeatures: WKWindowFeatures) -> WKWebView? {
4848
guard let url = navigationAction.request.url else { return nil }
4949

50-
if navigationAction.navigationType == .linkActivated && UIApplication.shared.canOpenURL(url) {
51-
// Open links in system browser
50+
if UIApplication.shared.canOpenURL(url) {
5251
UIApplication.shared.open(url)
53-
5452
return nil
5553
}
5654

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// URL+Extension.swift
3+
// PACECloudSDK
4+
//
5+
// Created by PACE Telematics GmbH.
6+
//
7+
8+
import Foundation
9+
10+
extension URL {
11+
var isHttpScheme: Bool {
12+
scheme == "http"
13+
}
14+
15+
var isHttpsScheme: Bool {
16+
scheme == "https"
17+
}
18+
}

0 commit comments

Comments
 (0)