我的应用程序需要在整个应用程序中访问后端服务器和第三方API(Google,Cloudmade等)。没有其他选择,需要连接。
我已经使用Tony Million's版本的Reachability进行了检查,请参阅https://stackoverflow.com/a/3597085/3187198。我在appDelegate中执行此操作,并希望在网络状态为NotReachable
时执行某些操作。
从设计的角度来看,我需要在关闭应用程序之前通过让用户采取行动或提供信息来处理这个问题。我考虑了三种情况:
A。用户获得UIAlert,可以通过[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
转到网络设置
但这既是一种无证的功能,也不能超越5.1
B。通过UIAlert通知用户,"退出"作为确认,然后使用exit(0)
退出应用程序。但是,此行为也是被禁止的,并且会导致Apple拒绝该应用程序。
C。在AppName-Info.plist中设置UIRequiresPersistentWiFi = YES
,但这有点过头了,因为该应用不需要一致 wifi / 3G,如果是这种情况,这将不会提示丢失网络。
所以,我的问题是,处理NotReachable
案例的推荐方法是什么?
答案 0 :(得分:0)
只需通过UIAlert告知用户该问题。不要做任何选择,只需显示一个OK按钮。当用户点击“确定”按钮时,更新UI,以便当用户再次触发该上下文中所需的操作时,再次检查网络状态。如果网络可以访问,则允许用户继续,否则,只需再次显示警报。