iOS UIWebView获取403/404
来源:互联网 发布:json socket 编辑:程序博客网 时间:2024/05/29 15:35
问题描述
与WindowsPhone不同,iOS UIWebView并不认为403/404这种情况下页面访问是失败的,这也情有可原,但有时候,我们需要对WebView所遇到的403/404进行处理。
解决思路
由于WebView在回调事件,要么发生在NSURLConnection请求之前:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
- (void)webViewDidStartLoad:(UIWebView *)webView;
要么发生在NSURLConnection请求之后:
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
这两种情况下都无法获取状态码,故NSURLConnection必须由我们来完成。然后让WebView调用loadData方式展现页面,而403/403由我们自己处理。
解决方案
- #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;
- }
0 0
- iOS UIWebView获取403/404
- iOS UIWebView 403/404
- iOS UIWebView 获取Url
- iOS 获取UIWebView的高度
- iOS动态获取UIWebView高度
- iOS动态获取UIWebView高度
- [ios]iphone 获取UIWebView内Html方法
- iOS获取UIwebView上面的点击事件
- iOS开发 UIWebView获取点击图片
- iOS中获取UIWebView的各种信息
- iOS开发- 动态获取UIWebView高度
- iOS-OC-获取UIWebview的高度
- IOS 实时获取UIWebView中的html内容
- iOS UIWebView、WKWebView获取内容高度
- iOS之UIWebView无法获取web标题
- Ios UIWebView 捕获404错误
- IOS UIWebView
- iOS UIWebView
- SQL Server中的事务日志(二)-事务日志在修改数据时的角色
- SQL Developer快速按指定格式导出数据
- ios消息传递机制
- SQL Server中的事务日志(三)-在简单恢复模式下日志的角色
- SQL Server中的事务日志(四)-在完整恢复模式下日志的角色
- iOS UIWebView获取403/404
- SQL Server中的事务日志(五)-日志在高可用和灾难恢复中的作用
- build tree
- How Computers Boot Up -- 计算机是如何启动的
- SCANV团队紧急预警“MetInfo后门事件”
- SQL Server中日志的的作用
- SQL Server有关备份的30个误区
- 黑马程序员--献给进黑马的朋友们(11)
- iframe页面高度自动适应