Manos Chorianopoulos

fix deeplinking from campaigns

...@@ -352,6 +352,35 @@ var timer2: DispatchSourceTimer? ...@@ -352,6 +352,35 @@ var timer2: DispatchSourceTimer?
352 352
353 } 353 }
354 354
355 + public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
356 +
357 +// if(navigationAction.navigationType == .linkActivated) {
358 +
359 + if let redirectedUrl = navigationAction.request.url {
360 + // Example Deeplink: https://cosmote.page.link/loyaltyWallet
361 + // Example Deeplink: https://preview.page.link/cosmote.page.link/loyaltyWallet
362 + // Example Deeplink: https://apps.apple.com/app/id482889196?mt=8
363 +
364 + if redirectedUrl.absoluteString.contains("cosmote.page.link") {
365 +
366 + // check if link can be opened.
367 + guard UIApplication.shared.canOpenURL(redirectedUrl) else {
368 + decisionHandler(.cancel)
369 + return
370 + }
371 +
372 + UIApplication.shared.open(redirectedUrl, options: [:], completionHandler: nil)
373 +
374 + decisionHandler(.cancel)
375 + return
376 + }
377 + }
378 +
379 +// }
380 +
381 + decisionHandler(.allow)
382 + }
383 +
355 // MARK: - WKScriptMessageHandler 384 // MARK: - WKScriptMessageHandler
356 public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { 385 public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
357 386
......