diff --git a/README.md b/README.md
index 7bd54f6..fd6e2c3 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ Note that starting version 3.10.0, it requires minimum version of iOS 11. If you
Add this to your Podfile.
```ruby
-pod 'Xendit', '~> 3.10.3'
+pod 'Xendit', '~> 3.10.4'
```
**Important:** Import SDK in Objective-C project with CocoaPods integration, you can do as following
diff --git a/Sources/Xendit/Info.plist b/Sources/Xendit/Info.plist
index 92463dd..9a4c082 100755
--- a/Sources/Xendit/Info.plist
+++ b/Sources/Xendit/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 3.10.3
+ 3.10.4
CFBundleVersion
$(CURRENT_PROJECT_VERSION)
NSPrincipalClass
diff --git a/Sources/Xendit/WebViewController/AuthenticationWebviewController.swift b/Sources/Xendit/WebViewController/AuthenticationWebviewController.swift
index b321dfe..149eb08 100644
--- a/Sources/Xendit/WebViewController/AuthenticationWebviewController.swift
+++ b/Sources/Xendit/WebViewController/AuthenticationWebviewController.swift
@@ -76,6 +76,7 @@ class AuthenticationWebViewController: UIViewController, WKScriptMessageHandler,
webView = WKWebView(frame: view.frame, configuration: webConfiguration)
webView.navigationDelegate = self
+ webView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(webView)
@@ -134,4 +135,14 @@ class AuthenticationWebViewController: UIViewController, WKScriptMessageHandler,
Log.shared.verbose("web auth: navigation error \(error)")
authenticateCompletion(nil, XenditError(errorCode: "WEBVIEW_ERROR", message: error.localizedDescription))
}
+
+ override func viewWillDisappear(_ animated: Bool) {
+ super.viewWillDisappear(animated)
+ // Remove script message handler
+ webView.configuration.userContentController.removeAllUserScripts()
+ webView.configuration.userContentController.removeScriptMessageHandler(forName: "callbackHandler")
+ // Clear any other references
+ webView.navigationDelegate = nil
+ webView = nil
+ }
}
diff --git a/Sources/Xendit/WebViewController/WebViewController.swift b/Sources/Xendit/WebViewController/WebViewController.swift
index c32e4a7..f411eca 100755
--- a/Sources/Xendit/WebViewController/WebViewController.swift
+++ b/Sources/Xendit/WebViewController/WebViewController.swift
@@ -82,6 +82,7 @@ class WebViewController: UIViewController, WKScriptMessageHandler, WKNavigationD
webConfiguration.userContentController = contentController
webView = WKWebView(frame: view.frame, configuration: webConfiguration)
webView.navigationDelegate = self
+ webView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(webView)
NSLayoutConstraint.activate([
@@ -139,4 +140,14 @@ class WebViewController: UIViewController, WKScriptMessageHandler, WKNavigationD
Log.shared.verbose("web auth: navigation error \(error)")
authenticateCompletion(nil, XenditError(errorCode: "WEBVIEW_ERROR", message: error.localizedDescription))
}
+
+ override func viewWillDisappear(_ animated: Bool) {
+ super.viewWillDisappear(animated)
+ // Remove script message handler
+ webView.configuration.userContentController.removeAllUserScripts()
+ webView.configuration.userContentController.removeScriptMessageHandler(forName: "callbackHandler")
+ // Clear any other references
+ webView.navigationDelegate = nil
+ webView = nil
+ }
}
diff --git a/Sources/Xendit/XDTApiClient.swift b/Sources/Xendit/XDTApiClient.swift
index d455616..38c3860 100644
--- a/Sources/Xendit/XDTApiClient.swift
+++ b/Sources/Xendit/XDTApiClient.swift
@@ -38,7 +38,7 @@ class XDTApiClient {
internal static let CLIENT_TYPE = "SDK";
internal static let CLIENT_API_VERSION = "2.0.0";
internal static let CLIENT_IDENTIFIER = "Xendit iOS SDK";
- internal static let CLIENT_SDK_VERSION = "3.10.3";
+ internal static let CLIENT_SDK_VERSION = "3.10.4";
private static let WEBAPI_FLEX_BASE_URL = "https://sandbox.webapi.visa.com"
diff --git a/Xendit.podspec b/Xendit.podspec
index 4e6c72a..2e77083 100755
--- a/Xendit.podspec
+++ b/Xendit.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Xendit'
- s.version = '3.10.3'
+ s.version = '3.10.4'
s.license = 'MIT'
s.homepage = 'https://www.xendit.co'
s.author = { 'Juan Gonzalez’' => 'juan@xendit.co' }