我需要限制访问依赖于互联网连接的应用中的网页。我的几个页面都有代码可以帮助应用程序与外部数据库进行通信。
当互联网连接不可用时,页面的行为不符合预期,因为对数据库进行的某些检查确定了页面上某些内容的显示方式。
有没有办法检测到没有互联网连接,什么时候没有自动有任何试图连接到互联网的页面/从外部数据库中获取数据受限制?
也许会显示一些“目前无序,请稍后再试”页面或其他内容?
感谢您的时间。
答案 0 :(得分:2)
是的,因为所有人都说使用可达性来检查互联网连接。下载.h和.m文件代码from here并添加到您的项目中。
然后在你的.h文件中
#import "Reachability.h"
@interface ViewController : UIViewController
{
NetworkStatus netStatus;
Reachability *reach;
}
并在您的.m文件中
reach = [Reachability reachabilityForInternetConnection];
netStatus = [reach currentReachabilityStatus];
if (netStatus != NotReachable)
{
//present your view which needs internet connection.
}
else
{
//show alert or message "Currently out of order please try again later"
}
答案 1 :(得分:1)
正如其他人已经说过的那样,使用可达性类可能就是你想要做的。如果您已经在使用像AFNetworking这样的库来建立网络,那么它就会提供自己的可达性类。
此外,我处理此问题的方法是让每个视图控制器侦听可访问性通知,如果没有互联网,则禁用与用户元素的交互,这会将用户带到需要互联网连接的不同视图控制器同时在导航栏下方显示“Toast”通知。这样,用户意识到对互联网连接的需求,并且可以提供更好的用户体验。
答案 2 :(得分:0)
有一个Apple示例演示了Reachability类:https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html