webView 拦截网络请求

- (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:@"资源类型"];


/** webView 加载完成*/

- (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];

    }

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值