- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// 1.获得url
NSString *url = request.URL.absoluteString;
// 2.判断是否为回调地址
NSRange range = [url rangeOfString:@"code="];
if (range.length !=0) {// 是回调地址
// 截取code=后面的参数值
NSUInteger fromIndex = range.location + range.length;
NSString *code = [url substringFromIndex:fromIndex];
// 利用code换取一个accessToken
[selfaccessTokenWithCode:code];
// 禁止加载回调地址
return NO;
}
// 允许加载
return YES;
}
/** 这个是某个资源在 mainBundle 中的 url webView 可以利用这个 url 加载 mainBundle 的东西 webView 可以加载 ppt, mp4, text, mp3, 动态图片等吧*/
[[NSBundle mainBundle]URLForResource:@"资源名称" withExtension:@"资源类型"];
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if ([webView.request.URL.absoluteString isEqualToString:self.deal.deal_h5_url]) {/** url的 string 值*/
// 旧的HTML5页面加载完毕
NSString *ID = [self.deal.deal_id substringFromIndex:[self.deal.deal_id rangeOfString:@"-"].location + 1];
NSString *urlStr = [NSString stringWithFormat:@"http://lite.m.dianping.com/group/deal/moreinfo/%@", ID];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]]];
} else { // 详情页面加载完毕
// 用来拼接所有的JS
NSMutableString *js = [NSMutableString string];
// 删除header
[js appendString:@"var header = document.getElementsByTagName('header')[0];"];
[js appendString:@"header.parentNode.removeChild(header);"];
// 删除顶部的购买
[js appendString:@"var box = document.getElementsByClassName('cost-box')[0];"];
[js appendString:@"box.parentNode.removeChild(box);"];
// 删除底部的购买
[js appendString:@"var buyNow = document.getElementsByClassName('buy-now')[0];"];
[js appendString:@"buyNow.parentNode.removeChild(buyNow);"];
// 利用webView执行JS
[webView stringByEvaluatingJavaScriptFromString:js];
// 获得页面
// NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].outerHTML;"];
// 显示webView
webView.hidden = NO;
// 隐藏正在加载
[self.loadingView stopAnimating];
}
}