Comments (2)
Hi Was this ever done?
from authorize-me.
`//
// WebViewController.swift
// Authorizer
//
// Created by Radislav Crechet on 5/5/17.
// Copyright © 2017 RubyGarage. All rights reserved.
//
import UIKit
import WebKit
class ProviderController: UINavigationController {
var request: URLRequest!
var redirectUri: String!
var completion: WebRequestService.Completion!
private let cancelButtonTitle = "Cancel"
private var webView: WKWebView!
private var webViewController: UIViewController!
override func viewDidLoad() {
super.viewDidLoad()
configureWebView()
configureWebViewController()
pushViewController(webViewController, animated: false)
}
private func configureWebView() {
webView = WKWebView(frame: view.bounds)
webView.navigationDelegate = self
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
webView.load(request)
}
private func configureWebViewController() {
webViewController = UIViewController()
webViewController.view.frame = view.bounds
webViewController.title = title
webViewController.navigationItem.leftBarButtonItem = UIBarButtonItem(title: cancelButtonTitle,
style: .plain,
target: self,
action: #selector(cancel))
webViewController.view.addSubview(webView)
}
func complete(withUrl url: URL?, error: AuthorizeError?) {
dismiss(animated: true)
completion(url, error)
}
@objc func cancel() {
complete(withUrl: nil, error: AuthorizeError.cancel)
}
}
extension ProviderController : WKNavigationDelegate, WKUIDelegate {
//Equivalent of shouldStartLoadWithRequest:
public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.request.url?.absoluteString.hasPrefix(redirectUri) ?? false {
complete(withUrl: navigationAction.request.url, error: nil)
decisionHandler(.cancel)
} else {
decisionHandler(.allow)
}
}
//Equivalent of webViewDidStartLoad:
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
// print("didStartProvisionalNavigation - webView.url: (String(describing: webView.url?.description))")
}
}
`
from authorize-me.
Related Issues (12)
- Demo uses CommonCrypto and that isn't in Podfile HOT 3
- Build fail with 83 errors HOT 2
- LinkedIn Login error. HOT 1
- Enhancement - ui buttons for providers
- Get email, profile picture HOT 1
- No maintanance?
- #selector' refers to instance method 'cancel()' that is not exposed to Objective-C HOT 5
- Cocopods integration seems broken, not fully implemented HOT 2
- TwitterSystemProvider .. deprecated? HOT 3
- CredStore - performQuery - Error copying matching creds HOT 4
- Swift 4 Support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from authorize-me.