Ios UIWebView从加载的页面获取http状态代码
我在游戏中使用Ios UIWebView从加载的页面获取http状态代码,ios,uiwebview,nsurlrequest,Ios,Uiwebview,Nsurlrequest,我在游戏中使用UIWebView来显示客户支持表单。我注意到,如果服务器返回503错误(从负载平衡器发送的http状态代码),我就无法关闭webview 有没有办法轻松获取此http状态?我是否可以进行一些设置,以便在http状态代码不是200时调用didFailWithError 加载代码 UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]; NSURL *nsURL = [NSURL URLWithS
UIWebView
来显示客户支持表单。我注意到,如果服务器返回503错误(从负载平衡器发送的http状态代码),我就无法关闭webview
有没有办法轻松获取此http状态?我是否可以进行一些设置,以便在http状态代码不是200时调用didFailWithError
加载代码
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame];
NSURL *nsURL = [NSURL URLWithString:url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:nsURL];
webView.opaque = YES;
webView.userInteractionEnabled = YES;
[webView loadRequest:request];
webView.delegate = self;
closableWebViewController = [[UIViewController alloc] init];
[closableWebViewController.view setFrame:self.view.frame];
[closableWebViewController.view addSubview:webView];
[self presentViewController:closableWebViewController animated:YES completion:nil];
未调用此委托方法
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"webview error %@",error);
if (closableWebViewController)
{
NSLog(@"closing webview");
[closableWebViewController dismissViewControllerAnimated:TRUE completion:^{
closableWebViewController = nil;
NSLog(@"webView closed");
}];
}
}
你不容易做到这一点,但这里有一个很好的技巧:
是的,我查看了此页面,但在我的情况下,如果能找到一种方法让didFailWithError代表打电话,那就太好了。我可以要求我的系统管理员更改负载平衡器发送错误的方式。也许如果我从错误页面中删除所有html输出,它会解决问题。是的,这会解决问题。另一个选项是在成功时使用NSUrlConnection并手动填充UIView。我最后使用了另一个技巧(通过javascript获取html内容),但ios SDK中显然缺少此信息。当服务器停机时,负载平衡器返回特定的html内容,我们在返回的html中查找该内容:-(void)webViewDidFinishLoad:(UIWebView*)webView{NSString*html=[webView StringByEvaluationJavaScriptFromString:@“document.body.innerHTML”];if([html IsequalString:@”“]| |[html containssString:@“Unavailable”]))//做点什么啊!现在我明白了!是的,这很有效。当你可以访问服务器时很好:)