美文网首页
iOS-webView请求失败后处理

iOS-webView请求失败后处理

作者: 奋斗的蜗牛 | 来源:发表于2017-03-20 18:48 被阅读555次

由于iOS的webView对于400、404等错误不算做请求失败,加载失败后是失败界面,这样会很不好看, 所以我们需要手动拦截请求返回的错误码,来添加加载失败的界面。

//webView的回调方法中实现
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    
    NSHTTPURLResponse *response = nil;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
    
    if (response.statusCode == 200) {
        self.noMessageLabel.hidden = YES;
        return YES;
    }
    self.noMessageLabel.hidden = NO;
    return NO;
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
     self.noMessageLabel.hidden = NO;
}

//刷新、重载
- (void)refreshBtnClick
{
    self.url = _url;
}

- (NOMessageView *)noMessageLabel{
    
    if (!_noMessageLabel) {
        _noMessageLabel = [[NOMessageView alloc] initWithFrame:CGRectMake(0, (webView.height - 200) / 2, kW, 200)];
        _noMessageLabel.imageView.image = CommomImage(@"no_network_icon");
        _noMessageLabel.messageLabel.text = @"网络异常,刷新试试";
        [_noMessageLabel.refreshBtn addTarget:self action:@selector(refreshBtnClick) forControlEvents:UIControlEventTouchUpInside];
        _noMessageLabel.refreshBtn.hidden = NO;
        [webView addSubview:_noMessageLabel];
        [webView bringSubviewToFront:self.noMessageLabel];
    }
    return _noMessageLabel;
}

相关文章

  • iOS-webView请求失败后处理

    由于iOS的webView对于400、404等错误不算做请求失败,加载失败后是失败界面,这样会很不好看, 所以我们...

  • Jemeter后处理器元素

    在发出采样器请求之后执行后处理器元素。 如果后处理器连接到Sampler元素,那么它将在该sampler元素运行之...

  • 过滤器

    过滤器 Filter 用于对用户请求进行预处理,和对请求响应进行后处理的 web 应用组件。 过滤源:请求与响应过...

  • HTTP状态码

    通过状态码可以知道客户端在向服务器发送请求后处理的结果。 1xx 类别:Information原因短语:接收的请求...

  • async-继发和并发的写法

    案例 需求是第一个请求是续发,请求成功之后处理两个并发请求,之后在处理相关业务 相关文章 终极异步解决方案asyn...

  • vue中用async/await 来处理异步

    用async/ await来发送异步请求,从服务端获取数据,等待获取数据,然后处理数据。 resolve,reje...

  • AFNetWorking Failure Error

    AFNetWorking 请求失败 AFNetWorking请求失败返回NSError分析,下面的方法是直接调用m...

  • 如何使用Promise来同时请求多个数据

    需求:多个请求,不管成功或失败,都希望拿到这些请求的结果,比如,第一个请求失败了,后面的请求还是继续,请问怎么实现...

  • Filter

    1.Filter: servlet过滤器: 自己的理解:filter只是起到对用户请求预处理和后处理的作用。后期再...

  • 【iOS 开发】AFNetworking 网络请求失败后通过 N

    最近在修改一个网络请求的 bug 时,由于一直请求失败,所以在寻找具体失败原因的时候,了解了一下请求失败的错误返回...

网友评论

      本文标题:iOS-webView请求失败后处理

      本文链接:https://www.haomeiwen.com/subject/kmeinttx.html