WebbyViewController.m   [plain text]



//
//  WebbyViewController.m
//  GSSTestApp
//
//  Copyright (c) 2014 Apple, Inc. All rights reserved.
//

#import "WebbyViewController.h"

@interface WebbyViewController ()

@end

@implementation WebbyViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.spinny setHidden:NO];

    self.urlTextField.text = @"http://dc03.ads.apple.com/";
    self.urlTextField.delegate = self;

    if ([self.type isEqualToString:@"UIWebView"]) {
        self.ui = [[UIWebView alloc] initWithFrame:[self.webbyView bounds]];
        self.ui.delegate = self;

        [self.webbyView addSubview:self.ui];
    } else if ([self.type isEqualToString:@"WKWebView"]) {
        self.wk = [[WKWebView alloc] initWithFrame:[self.webbyView bounds]];
        self.wk.navigationDelegate = self;

        [self.webbyView addSubview:self.wk];
    } else {
        abort();
    }

    [self gotoURL:self.urlTextField.text];
}

- (IBAction)reload:(id)sender {
    if (self.ui)
        [self.ui reload];
    if (self.wk)
        [self.wk reload];
}

- (IBAction)goBack:(id)sender {
    if (self.ui)
        [self.ui goBack];
    if (self.wk)
        [self.wk goBack];
}

- (void)startLoading {
    [self.spinny startAnimating];
    [self.reloadButton setHidden:YES];
    [self.spinny setHidden:NO];
}

- (void)doneLoading {
    [self.spinny stopAnimating];
    [self.reloadButton setHidden:NO];
    [self.spinny setHidden:YES];
}

#pragma mark - UIWebView

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
    self.urlTextField.text = [request.URL absoluteString];
    return YES;
}

- (void)webViewDidStartLoad:(UIWebView *)webView {
    [self startLoading];
}


- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [self doneLoading];
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    [self doneLoading];
}

#pragma mark - WKWebView

- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation
{
    [self startLoading];
    self.urlTextField.text = [[self.wk URL] absoluteString];
}

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
    [self doneLoading];
}

- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
    [self doneLoading];
}

- (void)gotoURL:(NSString *)url {
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];

    if (self.ui)
        [self.ui loadRequest:request];
    if (self.wk)
        [self.wk loadRequest:request];
}

- (BOOL) textFieldShouldReturn:(UITextField *)textField{

    [textField resignFirstResponder];
    [self gotoURL:textField.text];
    return YES;
}

@end