我正在实现一个具有UIWebView的应用程序。我的问题是,当加载带有URL的webview失败时,我需要显示一个警报。它可以很好地处理1001和1009类型错误,但不能响应404错误。我做不出这道题。如何处理这些类型的错误?
发布于 2010-11-11 17:55:21
一些did服务器将返回一个404错误的网页,该错误可以正确加载,因此webview不会加载失败。
这可能是你看到这种行为的原因。
没有简单的方法可以获取webview的URLConnection来响应状态码回调。
如果你真的需要在遇到404时显示一个警报,而不是让when服务器显示它自己的404页面,那么你可以自己为你想要加载的URL创建一个NSURLConnection和NSURLRequest。
如果成功,您可以下载HTML并手动将其放入then视图中。这将使您能够控制URLConnection委托,并允许您响应404响应代码。
发布于 2013-02-21 16:58:00
#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;
}https://stackoverflow.com/questions/4152759
复制相似问题