iOS网络监测详解手机开发
在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:
(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)
(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
WIFI/3G网络:自动下载高清图片
低速网络:只下载缩略图
没有网络:只显示离线的缓存数据
苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态
https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
二、监测网络状态
Reachability的使用步骤
添加框架SystemConfiguration.framework
添加源代码
包含头文件
#import Reachability.h
#import QYViewController.h
#import Reachability.h
@interface QYViewController ()
@property (nonatomic, strong) Reachability *conn;
@end
@implementation QYViewController
(void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
self.conn = [Reachability reachabilityForInternetConnection];
[self.conn startNotifier];
}
(void)dealloc
{
[self.conn stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
(void)networkStateChange
{
[self checkNetworkState];
}
(void)checkNetworkState
{
// 1.检测wifi状态
Reachability *wifi = [Reachability reachabilityForLocalWiFi];
// 2.检测手机是否能上网络(WIFI/3G/2.5G)
Reachability *conn = [Reachability reachabilityForInternetConnection];
// 3.判断网络状态
if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
NSLog(@ 有wifi );
} else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
NSLog(@ 使用手机自带网络进行上网 );
} else { // 没有网络
NSLog(@ 没有网络 );
}
}
5165.html
app程序应用开发手机开发无线开发移动端开发相关文章
- iOS 15 format新方法
- Ios tat 监视I/O子系统
- 【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
- iOS 应用上架流程(提交到AppStore)
- 如何使用Xcode打包导出IPA文件并进行iOS应用内测,无需支付苹果开发者账号费用?
- iOS网络编程使用代理方法 , 简化请求和响应详解手机开发
- iOS网络操作与AFNetworking详解手机开发
- iOS开发笔记 – 工具篇详解手机开发
- 在iOS上搭建MySQL数据库连接(ios连接mysql数据库)
- 比较iOS和Linux:谁更具优势?(ios和linux)
- 苹果推出iOS 14.7 Beta版修复连接特定WiFi热点时导致的网络禁用问题
- 谷歌 Chrome 92 浏览器 iOS/iPadOS 版发布,比 Safari 多了一项隐私功能
- Linux下安装iOS:解决方案(linux安装ios)
- iOS访问MySQL数据库的实战技术(ios访问mysql)
- iOS开发与Linux的技术融合(ios开发linux)
- 开启一个崭新世界:Linux与iOS系统(linux系统ios)
- 探秘iOS:它究竟是一种基于Linux的操作系统吗?(ios是linux系统吗)
- IOS上可以安装Oracle吗(ios能装oracle吗)
- 谁说 iOS 就不适用Oracle(ios oracle软件)
- 苹果全面拥抱 AR/VR:iOS 一夜成全球最大 AR 平台 | WWDC17