// // AuthorizationWebViewController.swift // WolneLektury // // Created by Pawel Dabrowski on 14/07/2018. // Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved. // import UIKit import OAuthSwift typealias WebView = UIWebView // WKWebView class AuthorizationWebViewController: OAuthWebViewController { var targetURL: URL? let webView: WebView = WebView() override func viewDidLoad() { super.viewDidLoad() self.webView.frame = UIScreen.main.bounds self.webView.scalesPageToFit = true self.webView.delegate = self self.view.addSubview(self.webView) loadAddressURL() } override func handle(_ url: URL) { targetURL = url super.handle(url) self.loadAddressURL() } func loadAddressURL() { guard let url = targetURL else { return } let req = URLRequest(url: url) self.webView.loadRequest(req) } open override func doHandle(_ url: URL) { let completion: () -> Void = { [unowned self] in self.delegate?.oauthWebViewControllerDidPresent() } appDelegate.mainNavigator.setRootViewController(controller: self) } } // MARK: delegate extension AuthorizationWebViewController: UIWebViewDelegate { func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { if let url = request.url, url.scheme == "oauth-swift" { // Call here AppDelegate.sharedInstance.applicationHandleOpenURL(url) if necessary ie. if AppDelegate not configured to handle URL scheme // compare the url with your own custom provided one in `authorizeWithCallbackURL` self.dismissWebViewController() } return true } }