IOS Alamofire判断手机是否有网络
时间:2022-06-25
本文章向大家介绍IOS Alamofire判断手机是否有网络,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 import UIKit
2 import Alamofire
3
4 class MyNetworkReachabilityManager {
5
6 private static let sharedInstance =
MyNetworkReachabilityManager()
7 var manager =
NetworkReachabilityManager(host:“www.baidu.com”)
8
9 init(){
10 manager?.listener = { status in
11 print(“Network Status Changed:(status)”)
12 }
13 manager?.startListening()
14 }
15 class var sharedManager:
MyNetworkReachabilityManager {
16
17 let instance = self.sharedInstance
18 return instance
19 }
20
21 func networkReachabilityStatus() ->
Alamofire.NetworkReachabilityManager.NetworkReachabilityStatus
{
22 let status:
Alamofire.NetworkReachabilityManager.NetworkReachabilityStatus
= (manager?.networkReachabilityStatus)!
23 print(“当前网络状态:(status)”)
24 return status
25 }
26}
27 import UIKit
28 import Alamofire
29
30 class ViewController:UIViewController {
31 override func viewDidLoad() {
32 super.viewDidLoad()
33 // Do any additional setup after loading the view,
typically from a nib.
34 }
35
36 @IBAction func
touchupInsideCheckBtnAction(sender:UIButton) {
37 var message = “当前无网络”
38 let status:
NetworkReachabilityManager.NetworkReachabilityStatus =
MyNetworkReachabilityManager.sharedManager.networkReachabilityStatus()
39
40 switch status {
41 case .notReachable:
42 message = “当前无网络”
43 print(“当前无网络”)
44 break
45 case
.reachable(NetworkReachabilityManager.ConnectionType.ethernetOrWiFi):
46 message = “是WIFI网络”
47 print(“是WIFI网络”)
48 break
49 case
.reachable(NetworkReachabilityManager.ConnectionType.
wwan):
50 message = “是3G或4G网络”
51 print(“是3G或4G网络”)
52 break
53
54 default:
55 message = “当前无网络”
56 break
57 }
58
59 let alert = UIAlertController(title:“Information”,
message:message, preferredStyle:
UIAlertControllerStyle.alert)
60 let OKAction = UIAlertAction(title:“OK”, style:
UIAlertActionStyle.default, handler:nil)
61 alert.addAction(OKAction)
62 self.presentViewController(alert, animated:true,
completion:nil)
63 }
64 }
- 用CSS制作可交换带事件处理的图片按钮
- tomcat相关配置技巧梳理
- 用Layer.search快速查询图元
- Ado.Net连接池的速度测试
- Excel小账本使用说明
- Enterprise Library 4.1学习笔记8----缓存应用程序块之FileDependency
- CSS实现按钮的两张图片的同步出现
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小
- 关于vb中的容器
- 关于vb中的容器
- Mysql数据库之Binlog日志使用总结
- 揭秘新人机大战柯洁对手天壤 AI排名已力压Deepzen
- 一路走到java工程师,java都快出java9了,到底该如何学java?
- 网站发布合并bll问题的解决
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- vuejs之构建简易音乐播放器
- vuejs小例子之天气查询
- 【python-leetcode259-双指针】三个数的最小和
- vuejs之vue.js+axios结合使用
- c语言之指向指针的指针
- c语言之利用#if #endif来进行注释或者运行不同的主函数
- c++之对组pair
- c++STL容器之set/multiset容器
- c++STL容器之list容器
- c++STL容器之deque容器
- Web自动化必会「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
- HTML5 meta viewport参数详解
- 二分查找应该都会,那么二分查找的变体呢?
- TypeScript 实战算法系列(三):实现链表与变相链表
- JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件