123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
-
-
- #import "FIRAuthWebViewController.h"
-
- #import "FIRAuthWebView.h"
-
- NS_ASSUME_NONNULL_BEGIN
-
- @interface FIRAuthWebViewController () <UIWebViewDelegate>
- @end
-
- @implementation FIRAuthWebViewController {
-
-
- NSURL *_URL;
-
-
-
- __weak id<FIRAuthWebViewControllerDelegate> _delegate;
-
-
-
- __weak FIRAuthWebView *_webView;
- }
-
- - (instancetype)initWithURL:(NSURL *)URL
- delegate:(__weak id<FIRAuthWebViewControllerDelegate>)delegate {
- self = [super initWithNibName:nil bundle:nil];
- if (self) {
- _URL = URL;
- _delegate = delegate;
- }
- return self;
- }
-
- #pragma mark - Lifecycle
-
- - (void)loadView {
- FIRAuthWebView *webView = [[FIRAuthWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
- webView.webView.delegate = self;
- self.view = webView;
- _webView = webView;
- self.navigationItem.leftBarButtonItem =
- [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
- target:self
- action:@selector(cancel)];
- }
-
- - (void)viewDidAppear:(BOOL)animated {
- [super viewDidAppear:animated];
-
-
- [_webView.webView loadRequest:[NSURLRequest requestWithURL:_URL]];
- }
-
- #pragma mark - UI Targets
-
- - (void)cancel {
- [_delegate webViewControllerDidCancel:self];
- }
-
- #pragma mark - UIWebViewDelegate
-
- - (BOOL)webView:(UIWebView *)webView
- shouldStartLoadWithRequest:(NSURLRequest *)request
- navigationType:(UIWebViewNavigationType)navigationType {
- return ![_delegate webViewController:self canHandleURL:request.URL];
- }
-
- - (void)webViewDidStartLoad:(UIWebView *)webView {
-
- _webView.spinner.hidden = NO;
- [_webView.spinner startAnimating];
- }
-
- - (void)webViewDidFinishLoad:(UIWebView *)webView {
-
- _webView.spinner.hidden = YES;
- [_webView.spinner stopAnimating];
- }
-
- - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
- if ([error.domain isEqualToString:NSURLErrorDomain] && error.code == NSURLErrorCancelled) {
-
- return;
- }
-
- [self webViewDidFinishLoad:webView];
- [_delegate webViewController:self didFailWithError:error];
- }
-
- @end
-
- NS_ASSUME_NONNULL_END
|