From e4caa7d77f804ecf9ad8161a9c2bbfe00af0a03e Mon Sep 17 00:00:00 2001 From: Arian Flores Date: Wed, 10 May 2023 14:33:40 -0700 Subject: [PATCH 1/2] Open URL in Mobile Browser if open_in_device_browser Flag Is True --- .../Core/Relayer/WebViewController.swift | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Sources/MagicSDK/Core/Relayer/WebViewController.swift b/Sources/MagicSDK/Core/Relayer/WebViewController.swift index bd9f998..19f7ba1 100644 --- a/Sources/MagicSDK/Core/Relayer/WebViewController.swift +++ b/Sources/MagicSDK/Core/Relayer/WebViewController.swift @@ -224,6 +224,26 @@ class WebViewController: UIViewController, WKUIDelegate, WKScriptMessageHandler, } catch {} } + /** + * The WKWebView will call this method when a web application calls window.open() in JavaScript. + */ + func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? { + // Make sure the URL is set. + guard let url = navigationAction.request.url, + let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: true), + let openInDeviceBrowser = urlComponents.queryItems?.first(where: { $0.name == "open_in_device_browser" })?.value?.lowercased() + else { + return nil + } + + if UIApplication.shared.canOpenURL(url) && openInDeviceBrowser == "true" { + // Open the link in the external browser. + UIApplication.shared.open(url, options: [:], completionHandler: nil) + } + + return nil + } + // handle external link clicked events func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { // Check for links. From 0093c5f91119db810e2506cf66751c62a013af31 Mon Sep 17 00:00:00 2001 From: Arian Flores Date: Wed, 10 May 2023 14:59:19 -0700 Subject: [PATCH 2/2] Bumps version --- MagicSDK.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MagicSDK.podspec b/MagicSDK.podspec index c41a26b..52df608 100644 --- a/MagicSDK.podspec +++ b/MagicSDK.podspec @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'MagicSDK' - s.version = '8.0.1' + s.version = '8.1.0' s.summary = 'Magic IOS SDK' s.description = <<-DESC