mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-03-25 09:25:47 +00:00
76 lines
2.4 KiB
Objective-C
76 lines
2.4 KiB
Objective-C
//
|
|
// PreviewViewController.m
|
|
// Blog
|
|
//
|
|
// Created by Sami Samhuri on 2015-04-19.
|
|
// Copyright (c) 2015 Guru Logic Inc. All rights reserved.
|
|
//
|
|
|
|
#import "PreviewViewController.h"
|
|
|
|
@interface PreviewViewController () <UIWebViewDelegate>
|
|
|
|
@property (weak, nonatomic) IBOutlet UIWebView *webView;
|
|
|
|
@end
|
|
|
|
@implementation PreviewViewController
|
|
|
|
- (void)viewWillAppear:(BOOL)animated {
|
|
[super viewWillAppear:animated];
|
|
|
|
if (self.initialRequest) {
|
|
if (self.promise) {
|
|
self.promise.then(^{
|
|
[self.webView loadRequest:self.initialRequest];
|
|
}).finally(^{
|
|
self.promise = nil;
|
|
});
|
|
}
|
|
else {
|
|
[self.webView loadRequest:self.initialRequest];
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)setInitialRequest:(NSURLRequest *)initialRequest {
|
|
_initialRequest = initialRequest;
|
|
[self.webView loadHTMLString:@"<!doctype html><html><head><title></title></head><body></body></html>" baseURL:nil];
|
|
}
|
|
|
|
- (void)encodeRestorableStateWithCoder:(NSCoder *)coder {
|
|
[coder encodeObject:self.initialRequest forKey:@"initialRequest"];
|
|
[coder encodeObject:self.webView.request.URL forKey:@"webView.request.URL"];
|
|
[super encodeRestorableStateWithCoder:coder];
|
|
}
|
|
|
|
- (void)decodeRestorableStateWithCoder:(NSCoder *)coder {
|
|
NSURL *url = [coder decodeObjectForKey:@"webView.request.URL"];
|
|
if (url) {
|
|
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
|
|
}
|
|
else {
|
|
self.initialRequest = [coder decodeObjectForKey:@"initialRequest"];
|
|
}
|
|
[super decodeRestorableStateWithCoder:coder];
|
|
}
|
|
|
|
#pragma mark - UIWebViewDelegate methods
|
|
|
|
- (void)webViewDidFinishLoad:(UIWebView *)webView {
|
|
if ([webView.request.URL isEqual:self.initialRequest.URL]) {
|
|
self.initialRequest = nil;
|
|
}
|
|
}
|
|
|
|
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
|
|
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Error" message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert];
|
|
__weak __typeof__(self) welf = self;
|
|
[alertController addAction:[UIAlertAction actionWithTitle:@"Dismiss" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
|
|
__typeof__(self) self = welf;
|
|
[self dismissViewControllerAnimated:YES completion:nil];
|
|
}]];
|
|
[self presentViewController:alertController animated:YES completion:nil];
|
|
}
|
|
|
|
@end
|