要检查我的iOS应用中的互联网连接,我做了以下内容:
导入SystemConfiguration.framework
从我的项目中的https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html添加Reachability.h和Reachability.m
然后我在ViewController.m中添加了它:
#import <SystemConfiguration/SystemConfiguration.h>
#import "Reachability.h"
和
- (BOOL)connected
{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
return !(networkStatus == NotReachable);
}
- (void)viewDidLoad {
[super viewDidLoad];
if (![self connected])
{
// not connected
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No internet connection!" message:@"Check internet connection!" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
} else
{
}
}
我在应用中打开的每个视图(控制器)都会显示警报。那紧张。它应该只出现在一个视图(需要互联网连接)或只出现一次(当启动应用程序或互联网连接中断时)。 (或任何其他想法?)
有办法吗?
答案 0 :(得分:0)
我通过为我的主页集成的ViewController创建一个自己的HomeViewController.h / HomeViewController.m文件解决了这个问题。在那里,我添加了alert-if-no-internet-connection代码。
答案 1 :(得分:0)
而不是UIAlertView
,你应该把一个布尔值设为true,如果你有互联网连接则为假,如果你没有,当你想要提出请求时,你应该检查布尔值并显示警告或做你想做的事。
如果您想在ViewController
第一次使用时只执行一次,您可以这样做
- (BOOL)connected
{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
return !(networkStatus == NotReachable);
}
- (void)viewDidLoad {
[super viewDidLoad];
if (![self connected])
{
if(hasPresentedAlert == false){
// not connected
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No internet connection!" message:@"Check internet connection!" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
hasPresentedAlert = true;
}
} else
{
}
}
在界面中声明布尔值
@interface ViewController (){
BOOL hasPresentedAlert;
}
答案 2 :(得分:0)
在app delegate类中你应该编写(BOOL)连接函数,在视图控制器类中你只需从app delegate访问这个函数。
- (void)viewDidLoad:(BOOL)动画{
[super viewDidLoad:animated];
AppDelegate * 应用程式=(AppDelegate中 *)[[UIApplication sharedApplication] delegate];
if([app connected]){
//未连接
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@&#34;没有互联网连接!&#34;消息:@&#34;检查互联网连接!&#34; delegate:nil cancelButtonTitle:@&#34;好的&#34; otherButtonTitles:无];
[alert show];
}
}