对 UIWebView 错误进行分类并在 iphone 应用上显示?
Posted
技术标签:
【中文标题】对 UIWebView 错误进行分类并在 iphone 应用上显示?【英文标题】:categorise UIWebView errors and display on iphone app? 【发布时间】:2012-07-26 08:44:14 【问题描述】:UIWebView 的任何类别是否可能出现错误?在我的应用程序中,我需要显示加载 url 时发生的实际错误。我可以在 didFailLoadWithError 方法中打印错误,但会给出关于错误的详细描述,例如
didFailLoadWithError Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=0x895fb10 NSErrorFailingURLStringKey=https://mobilelogin.bwanet.ca/mdninput.html?csphostid=J13y8E9t000Mb3ZK00001H7R, NSErrorFailingURLKey=https://mobilelogin.bwanet.ca/mdninput.html?csphostid=J13y8E9t000Mb3ZK00001H7R, NSLocalizedDescription=A server with the specified hostname could not be found., NSUnderlyingError=0x8c68f20 "A server with the specified hostname could not be found."
我将如何对这些可能的错误进行分类,我想将其显示为 “找不到指定的主机名” “网址超时错误” 等等
【问题讨论】:
【参考方案1】:在这篇文章中,您可以找到可能的错误代码列表,这将帮助您使用特定的错误字符串对其进行分类:Undocumented NSURLErrorDomain error codes (-1001, -1003 and -1004) using StoreKit
【讨论】:
【参考方案2】:好的,在 didFailWithError 方法中
if (error.code==NSURLErrorTimedOut)
errorReason=@"URL Time Out Error ";
else if (error.code==NSURLErrorCannotFindHost)
errorReason=@"Cannot Find Host ";
else if (error.code==NSURLErrorCannotConnectToHost)
errorReason=@"Cannot Connect To Host";
else if (error.code==NSURLErrorNetworkConnectionLost)
errorReason=@"Network Connection Lost";
else if (error.code==NSURLErrorUnknown)
errorReason=@"Unknown Error";
else
errorReason=@"Loading Failed";
UIAlertView *errorAlert=[[UIAlertView alloc]initWithTitle:errorReason message:@"Redirecting to the server failed. do you want to EXIT the app" delegate:self cancelButtonTitle:@"EXIT" otherButtonTitles:@"RELOAD", nil];
[errorAlert show];
[errorAlert release];
【讨论】:
你看到所有那些“else if”了吗?这就是发明“switch”语句的原因 或者更好的是 enum myEnum LoadingFaild = -1 Dictionary以上是关于对 UIWebView 错误进行分类并在 iphone 应用上显示?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 UIWebView 中解决这个 iOS 8 Voiceover 错误吗?
iOS 6.1.3 Mobile Safari / UIWebView 发送错误的区域设置区域代码