首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIWebView didFailWithError未响应404错误

UIWebView didFailWithError未响应404错误
EN

Stack Overflow用户
提问于 2010-11-11 17:03:24
回答 2查看 3.9K关注 0票数 0

我正在实现一个具有UIWebView的应用程序。我的问题是,当加载带有URL的webview失败时,我需要显示一个警报。它可以很好地处理1001和1009类型错误,但不能响应404错误。我做不出这道题。如何处理这些类型的错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-11 17:55:21

一些did服务器将返回一个404错误的网页,该错误可以正确加载,因此webview不会加载失败。

这可能是你看到这种行为的原因。

没有简单的方法可以获取webview的URLConnection来响应状态码回调。

如果你真的需要在遇到404时显示一个警报,而不是让when服务器显示它自己的404页面,那么你可以自己为你想要加载的URL创建一个NSURLConnection和NSURLRequest。

如果成功,您可以下载HTML并手动将其放入then视图中。这将使您能够控制URLConnection委托,并允许您响应404响应代码。

票数 1
EN

Stack Overflow用户

发布于 2013-02-21 16:58:00

代码语言:javascript
复制
#pragma mark -
#pragma mark - UIWebView Delegate Methods
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    static BOOL isRequestWeb = YES;

    if (isRequestWeb) {
        NSHTTPURLResponse *response = nil;

        NSData *data = [NSURLConnection sendSynchronousRequest:request   returningResponse:&response error:nil];
        if (response.statusCode == 404) {
            // code for 404
            return NO;
        } else if (response.statusCode == 403) {
            // code for 403
            return NO;
        }

    [webView loadData:data MIMEType:@"text/html" textEncodingName:nil baseURL:[request URL]];

    isRequestWeb = NO;
    return NO;
    }

    return YES;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4152759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档