如何判断当前网络连接状态(网络是否正常)

众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单。

前提:工程添加:SystemConfiguration.framework

然后在需要判断的类中包含头文件:

#import "Reachability.h"

下面是我写的一个方法:

#pragma mark - 检测网络连接

+ (BOOL)isConnectionAvailable

{

BOOL isExistenceNetwork = YES;

DDReachability *reach = [DDReachability reachabilityWithHostname:@"www.apple.com"];

switch ([reach currentReachabilityStatus]) {

case NotReachable:

isExistenceNetwork = NO;

//NSLog(@"notReachable");

break;

case ReachableViaWiFi:

isExistenceNetwork = YES;

//NSLog(@"WIFI");

break;

case ReachableViaWWAN:

isExistenceNetwork = YES;

//NSLog(@"3G");

break;

}

if (!isExistenceNetwork) {

UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:nil message:@"当前网络不可用,请检查网络连接!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

[alertview show];

return NO;

}else{

return isExistenceNetwork;

}

}

然后在需要判断的地方直接:

//能联网去请求数据

if ([self isConnectionAvailable]) {

}

大家看懂了吧,就这么简单。

所以举一反三,如果你不单单是判断是否网络通畅,而是要判断是WIFI或3G,再写一个isEnableWIFI的方法,具体判断方法就不用再赘述了吧,currentReachabilityStatus判断之。

时间: 2024-11-03 22:05:54

如何判断当前网络连接状态(网络是否正常)的相关文章

Android判断网络连接状态

需要相关权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.INTERNET"/

android设备判断网络连接状态

android开发中,在做网络请求前判断当前网络连接状态有时很有必要.本文将介绍如何获取android设备当前网络连接状态! 所需权限(AndroidManifest.xml文件中添加): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Java代码(MainActivity.java文件) package com.example.androidtest; import a

判断网络连接状态

/** * 判断网络连接状态 */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager cwjManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cwjManager.getActiveNetworkInfo(); if (in

delphi 判断前网络连接状态

function GetNetworkState: string; // 得到当前网络连接状态var NS: TNetworkState;begin NS := TNetworkState.Create; try if not NS.IsConnected then // 无网络 result := '0' else if NS.IsWifiConnected then // wifi result := '1' else if NS.IsMobileConnected then // 移动数据

李洪强iOS下的实际网络连接状态检测

iOS下的实际网络连接状态检测 序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法

android检测网络连接状态示例讲解

网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置 Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="a

什么是网络连接状态指示器NCSI

什么是网络连接状态指示器? (NCSI ,Network Connectivity Status Indicator),中文意思:网络连接状态指示器,是Windows系统判断某一台机器是否能够连接到Internet的技术.其实,最早是Vista率先采用了该功能. 每一位用户连接到网络时,系统会自动向微软发送一个域名访问请求,访问的结果就是作为网络连接状况指示器.如下图,表示网络连接正常. 如何检测网络是否正常? 1) NCSI首先在dns.msftncsi.com上执行一次DNS查询,dns.m

18_手机网络连接状态

判断手机的网络连接状态,能够识别mobile和wifi连接. 以下程序,参考自 http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1 /** 2 * 判断网络连接状态 3

iOS下的实际网络连接状态检测:RealReachability

序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法上网,但本地连接已经建立: 2.