From 2dd15c0845ddca5d8bd442cd34640bac10a88bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=A1vio=20Caetano?= Date: Tue, 16 Jan 2018 11:44:45 -0200 Subject: [PATCH] Fix: Alternate endpoint not loading Fix #17 --- ReCaptcha/Classes/ReCaptcha.swift | 2 +- ReCaptcha/Classes/ReCaptchaWebViewManager.swift | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ReCaptcha/Classes/ReCaptcha.swift b/ReCaptcha/Classes/ReCaptcha.swift index 5fadf88..27ccaef 100644 --- a/ReCaptcha/Classes/ReCaptcha.swift +++ b/ReCaptcha/Classes/ReCaptcha.swift @@ -33,7 +33,7 @@ open class ReCaptcha: ReCaptchaWebViewManager { fileprivate var url: String { switch self { case .default: return "https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" - case .alternate: return "https://www.recaptcha.net/recaptcha/api.js" + case .alternate: return "https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit" } } } diff --git a/ReCaptcha/Classes/ReCaptchaWebViewManager.swift b/ReCaptcha/Classes/ReCaptchaWebViewManager.swift index 6959c3e..2db6091 100644 --- a/ReCaptcha/Classes/ReCaptchaWebViewManager.swift +++ b/ReCaptcha/Classes/ReCaptchaWebViewManager.swift @@ -19,6 +19,11 @@ open class ReCaptchaWebViewManager { /** The `webView` delegate object that performs execution uppon script loading */ fileprivate class WebViewDelegate: NSObject, WKNavigationDelegate { + struct Constants { + /// The host that loaded requests should have + static let apiURLHost = "www.google.com" + } + /// The parent manager private weak var manager: ReCaptchaWebViewManager? @@ -46,8 +51,7 @@ open class ReCaptchaWebViewManager { ) -> Void) { defer { decisionHandler(.allow) } - if let url = navigationAction.request.url, let host = url.host, let endpoint = manager?.endpoint, - endpoint.range(of: host) != nil { + if let url = navigationAction.request.url, url.host == Constants.apiURLHost { activeRequests.insert(url.absoluteString) } }