143 lines
4.3 KiB
Objective-C
143 lines
4.3 KiB
Objective-C
//
|
|
// GiGaWebViewController.m
|
|
// GIGA
|
|
//
|
|
// Created by lianxiang on 2018/8/21.
|
|
// Copyright © 2018年 com.giga.ios. All rights reserved.
|
|
//
|
|
|
|
#import "GiGaWebViewController.h"
|
|
#import "NJKWebViewProgressView.h"
|
|
#import "NJKWebViewProgress.h"
|
|
#import "UIView+Toast.h"
|
|
#import "GiGaNavTitileView.h"
|
|
|
|
@interface GiGaWebViewController ()<UIWebViewDelegate,NJKWebViewProgressDelegate>
|
|
{
|
|
NJKWebViewProgressView *_progressView;
|
|
NJKWebViewProgress *_progressProxy;
|
|
|
|
}
|
|
@property (weak, nonatomic) IBOutlet UIWebView *webview;
|
|
@property (nonatomic,strong) GiGaNavTitileView *navTitleView;
|
|
@end
|
|
|
|
@implementation GiGaWebViewController
|
|
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
// Do any additional setup after loading the view from its nib.
|
|
_progressProxy = [[NJKWebViewProgress alloc] init];
|
|
_webview.delegate = _progressProxy;
|
|
_progressProxy.webViewProxyDelegate = self;
|
|
_progressProxy.progressDelegate = self;
|
|
|
|
CGRect navBounds = self.navigationController.navigationBar.bounds;
|
|
CGRect barFrame = CGRectMake(0,
|
|
navBounds.size.height - 2,
|
|
navBounds.size.width,2);
|
|
|
|
_progressView = [[NJKWebViewProgressView alloc] initWithFrame:barFrame];
|
|
_progressView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
|
|
[_progressView setProgress:0 animated:YES];
|
|
|
|
[self loadWeb];
|
|
|
|
|
|
}
|
|
-(void)viewWillAppear:(BOOL)animated{
|
|
[super viewWillAppear:animated];
|
|
[self.navigationController.navigationBar addSubview:_progressView];
|
|
|
|
}
|
|
-(void)viewWillDisappear:(BOOL)animated{
|
|
[super viewWillDisappear:animated];
|
|
[_progressView removeFromSuperview];
|
|
}
|
|
-(void)loadWeb{
|
|
|
|
switch (self.souceType) {
|
|
case WebSourceTypeUrlLink:
|
|
{
|
|
if (!self.url) {
|
|
[self.view makeToast:@"链接为空" duration:1 position:CSToastPositionCenter];
|
|
return;
|
|
}
|
|
|
|
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:self.url]];
|
|
[req setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
[_webview loadRequest:req];
|
|
}
|
|
break;
|
|
|
|
case WebSourceTypeLoacalHtml:
|
|
{
|
|
if (!self.fileName) {
|
|
[self.view makeToast:@"无此文件" duration:1 position:CSToastPositionCenter];
|
|
return;
|
|
}
|
|
NSString *filepath = [[NSBundle mainBundle] pathForResource: self.fileName ofType:@"html"];
|
|
NSString *html = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:nil];
|
|
[_webview loadHTMLString:html baseURL:[NSURL URLWithString:filepath]];
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
#pragma mark -NJKWebViewProgressDelegate
|
|
-(void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress{
|
|
[_progressView setProgress:progress animated:YES];
|
|
NSString * title = [_webview stringByEvaluatingJavaScriptFromString:@"document.title"];
|
|
//or
|
|
//[self addNavTitile:title];
|
|
[self setnavTitle:title];
|
|
}
|
|
|
|
-(void)setnavTitle:(NSString *)title{
|
|
|
|
if (!_navTitleView) {
|
|
_navTitleView = [[GiGaNavTitileView alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
|
|
self.navigationItem.titleView = _navTitleView;
|
|
//[_navTitleView setTitleColor:[UIColor yellowColor]];
|
|
}
|
|
|
|
[_navTitleView setTitleStr:title];
|
|
}
|
|
|
|
- (void)webViewDidStartLoad:(UIWebView *)webView{
|
|
NSLog(@"startLoad");
|
|
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
|
|
}
|
|
|
|
-(void)webViewDidFinishLoad:(UIWebView *)webView{
|
|
|
|
NSLog(@"finishLoad");
|
|
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
|
|
}
|
|
|
|
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
|
|
NSLog(@"error:%@",error);
|
|
[_progressView setProgress:0 animated:NO];
|
|
}
|
|
|
|
- (void)didReceiveMemoryWarning {
|
|
[super didReceiveMemoryWarning];
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
- (void)removeCookies {
|
|
NSHTTPCookieStorage *cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
|
|
NSArray *pcookies = [cookies cookiesForURL:[NSURL URLWithString:self.url]];
|
|
for (NSHTTPCookie *cookie in pcookies) {
|
|
[cookies deleteCookie:cookie];
|
|
}
|
|
}
|
|
|
|
@end
|