文档章节

iOS开发 - Swift实现检测网络连接状态及网络类型

天秤vs永恒
 天秤vs永恒
发布于 2016/06/29 14:22
字数 338
阅读 335
收藏 1

一、前言

在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要。本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络、Wifi)。

二、如何实现

Reachability.swift 是一个使用Swift写的第三方网络检测类,可以用来检测网络连接状态及网络类型(移动网络、Wifi)功能。

三、如何使用

1. 使用Cocopod安装Reachability.swift

use_frameworks!
pod 'ReachabilitySwift'

2. 基本使用代码示例

使用前记得导入ReachabilitySwift类,下面代码放在viewDidLoad()方法中即可。

var reachability: Reachability!

do {
    reachability = try Reachability.reachabilityForInternetConnection()
} catch {
    print("Unable to create Reachability")
    return
}

// 检测网络连接状态
if reachability.isReachable() {
    print("网络连接:可用")
} else {
    print("网络连接:不可用")
}

// 检测网络类型
if reachability.isReachableViaWiFi() {
    print("网络类型:Wifi")
} else if reachability.isReachableViaWWAN() {
    print("网络类型:移动网络")
} else {
    print("网络类型:无网络连接")
}

3. 监听网络变化

// 网络可用或切换网络类型时执行
reachability.whenReachable = { reachability in

    // 判断网络状态及类型
}

// 网络不可用时执行
reachability.whenUnreachable = { reachability in

    // 判断网络状态及类型
}

do {
    // 开始监听
    try reachability.startNotifier()
} catch {
    print("Unable to start notifier")
}

停止监听调用reachability.stopNotifier()即可。

四、项目地址

Github地址:https://github.com/ashleymills/Reachability.swift

© 著作权归作者所有

天秤vs永恒
粉丝 5
博文 39
码字总数 18643
作品 0
长宁
项目经理
私信 提问
33 款主宰 2017 iOS 开发的开源库

你好,iOS 开发者们!我的名字是 Pawel,是一名 iOS 独立开发者,也是 Enter Universe 的作者。 大概在两年前,我发布了 提升开发的 27 个 iOS 开源库。这篇文章是我的一个最佳纪录(用户好评...

王练
2017/06/13
4K
6
如果只有一个月的时间学 iOS 开发,我们该做些什么?

一年前,我还是一个 Android 开发者。那时候我没有任何 iOS 编程相关的知识,我甚至没用过任何苹果的产品。然而,这已成为过去,现在我已经能同时开发 iOS 和 Android 应用了。 现在,我想给...

oschina
2017/03/09
3.7K
13
iOS项目开发

主要需求: 通过远程网络对汽车进行OBD(启动、熄火、门锁检测、车辆状态设置与检测、胎压等相关汽车状态的设置与获取展示) 工作内容: 1. 熟悉车载CAN、OBD相关行业知识 2.负责智能穿戴产品I...

黄淑宾
2017/02/22
36
0
OSChina 技术专题之 Swift 苹果全新开发语言

Swift 是苹果新推出的编程语言,专门针对 OS X 和 iOS 的应用开发。Swift 在各个方面优于 Objective-C,也不会有那么多复杂的符号和表达式。同时,Swift 更加快速、便利、高效、安全。除此之...

OSC编辑部
2014/11/10
4.2K
4
iOS股票K线图、校园助手、适配iPhone X、版本检测等源码

iOS精选源码 快速创建menuItem控件 YHPhotoBrowser 优化的网络图片浏览 cocoaAsynSocket demo (包含客户端和服务端) SwipeMenuViewController现在支持iPhoneX和Swift4。 仿微信的提醒对话框 ...

sunnyaigd
2017/10/31
44
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
6
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部