<UIWebViewDelegate>
@property (strong,nonatomic)IBOutletUIWebView *webView;// storyBoard加载的
@property (nonatomic,strong)UIActionSheet *ActionSheet;
@property (nonatomic,strong)NSString *tittle;
@property (nonatomic,strong)NSMutableArray *mUrlArray;
- (void)viewDidLoad {
[superviewDidLoad];
[selfaddLeftButton];
_url=@"https://www.xxxx.com/";
[selfopenUrlWithString:_url];
}
//左按钮自定义
- (void)addLeftButton{
UIButton * backButton = [UIButtonbuttonWithType:UIButtonTypeSystem];
backButton.frame =CGRectMake(10,20,20,20);
[backButtonsetBackgroundImage:[UIImageimageNamed:@"goBack@2x"]forState:UIControlStateNormal];
[backButtonaddTarget:selfaction:@selector(back:)forControlEvents:UIControlEventTouchUpInside];
UIButton * guanBi = [UIButtonbuttonWithType:UIButtonTypeSystem];
guanBi.frame =CGRectMake(10,20,40,20);
// [guanBi setBackgroundImage:[UIImage imageNamed:@"goBack@2x"] forState:UIControlStateNormal];
[guanBisetTitle:@"关闭"forState:UIControlStateNormal];
[guanBiaddTarget:selfaction:@selector(closeWebView)forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItems =@[[[UIBarButtonItemalloc]initWithCustomView:backButton],[[UIBarButtonItemalloc]initWithCustomView:guanBi]];
}
- (void)openUrlWithString:(NSString *)urlStr{
_webView.backgroundColor = [UIColorclearColor];
for (UIView * viewsin [self.webViewsubviews]) {
if ([views isKindOfClass:[UIScrollViewclass]]) {
//去掉水平方向的滑动条
[(UIScrollView *)viewssetShowsHorizontalScrollIndicator:NO];
//去掉垂直方向的滑动条
[(UIScrollView *)viewssetShowsVerticalScrollIndicator:NO];
for (UIView * inScrollViewin views.subviews) {
if ([inScrollViewisKindOfClass:[UIImageViewclass]]) {
//隐藏上下滚动出边界时的黑色的图片
inScrollView.hidden =YES;
}
}
}
}
NSURL * url = [NSURLURLWithString:urlStr];
NSURLRequest * request = [NSURLRequestrequestWithURL:url];
_webView.delegate =self;
[_webView loadRequest:request];
}
//用苹果自带的返回键按钮处理如下(自定义的返回按钮)
- (void)back:(UIBarButtonItem *)btn {
if ([self.webView canGoBack]) {
[self.webView goBack];
}else{
[self.viewresignFirstResponder];
[self.navigationControllerpopViewControllerAnimated:YES];
}
}
//如果是H5页面里面自带的返回按钮处理如下:
#pragma mark - webViewDelegate
//- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// NSString * requestString = [[request URL] absoluteString];
// requestString = [requestString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// //获取H5页面里面按钮的操作方法,根据这个进行判断返回是内部的还是push的上一级页面
// if ([requestString hasPrefix:@"goback:"]) {
// [self.navigationController popViewControllerAnimated:YES];
// }else{
// [self.webView goBack];
// }
// return YES;
//}
//网址加载结束代理方法
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[_webViewstopLoading];
// 获取标题
NSString * title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];//获取当前页面的title
if (title.length >=1) {
_tittle = title;
}else{
_tittle =@"无标题";
}
self.title =_tittle;
// 获取图片地址
static NSString *const jsGetImages =
@"function getImages(){\
var objs = document.getElementsByTagName(\"img\");\
var imgScr = '';\
for(var i=0;i<objs.length;i++){\
imgScr = imgScr + objs[i].src + '+';\
};\
return imgScr;\
};";
[webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法
NSString *urlResurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];
_mUrlArray = [NSMutableArray arrayWithArray:[urlResurltcomponentsSeparatedByString:@"+"]];
if (_mUrlArray.count >=2) {
[_mUrlArray removeLastObject];
}
NSLog(@"图片地址为 = %@",_mUrlArray[0]);
_iamgeve = [[UIImageView alloc]init];
//加载图片地址的图片
[_iamgevesd_setImageWithURL:_mUrlArray[0]];
//获取当前网页的html
// NSString *lJs = @"document.documentElement.innerHTML";
// _currentHTML = [webView stringByEvaluatingJavaScriptFromString:lJs];
// NSLog(@"_currentHTML = %@",_currentHTML);
//获取当前网页地址
_currentURL = [[NSStringalloc]initWithString:webView.request.URL.absoluteString];
NSLog(@"_currentURL = %@",_currentURL);
}
//关闭
- (void)closeWebView {
[_webViewstopLoading];
//清除cookies
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStoragesharedHTTPCookieStorage];
for (cookiein [storagecookies]) {
[storage deleteCookie:cookie];
}
//清除UIWebView的缓存
[[NSURLCachesharedURLCache]removeAllCachedResponses];
NSURLCache * cache = [NSURLCachesharedURLCache];
[cache removeAllCachedResponses];
[cache setDiskCapacity:0];
[cache setMemoryCapacity:0];
[self.navigationControllerpopViewControllerAnimated:YES];
}