HDPingTools
这是一个iOS平台上的Ping工具,使用Swift语言开发。支持使用CocoaPods集成。三步即可使用
这是一个IOS平台用来ping的工具,使用Swift语言开发。支持使用cocoapods集成。三步即可使用
英文文档 | 中文文档
日志 | iPhone X状态栏statusBar | 状态栏statusBar |
---|---|---|
![]() |
![]() |
![]() |
介绍
尽管AFNetworking
和alamofire
提供了检测移动网络的功能,但它们只知道用户的网络连接模式,而不知道用户的真实用户体验。也许用户连接到WiFi,但网络速度不如3G网络快。
因此,它封装了这个功能。您可以通过这个项目通过ping请求到的域名来获取返回时间,并判断用户网络是否在正常范围内。
该包基于Apple的SimplePing并再次优化,这使得它更容易使用,可以三步调用
CocoaPods
pod 'HDPingTools'
1. 使用主机名创建 ping 对象
let pingTools = HDPingTools(hostName: "www.apple.com")
2. 启动 Ping
pingTools.start(pingType: .any, interval: .second(10)) { (response, error) in
print(response?.pingAddressIP ?? "")
}
当 interval
大于 0 时,Ping 请求将以固定间隔重复发送。当 interval
等于 0 时,仅发送一个 ping 请求
响应的 response
包含以下内容
pingAddressIP
是域名对应的 IP 地址responseTime
响应时间responseBytes
响应字节数
3. 停止请求
pingTools.stop()
4. 可选配置
public var timeout: HDPingTimeInterval = .millisecond(1000) //user defined timeout. The default value is 1000 ms. if it is set to 0, it will wait all the time
public var debugLog = true //enable log output
public var stopWhenError = false //stop Ping when an error is encountered
public private(set) var isPing = false //you can judge whether there is a ping task in progress
public var showNetworkActivityIndicator: NetworkActivityIndicatorStatus = .auto //Whether to display in the status bar
5、支持在ZXKit中显示
插件已经默认集成在ZXKitSwift中,如果您已经集成了ZXKitSwift
,则不需要重复集成
此功能支持ZXKit显示,如果需要显示,可以使用
pod 'HDPingTools/zxkit'
在AppDelegate
中注册该插件到ZXKit
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ZXKit.regist(plugin: HDPingTools())
return true
}
注意:如果网站或连接的路由设置为禁止Ping,ping时会报错。您需要先移除限制才能正常使用
中文介绍
虽然AFNetworking
和Alamofire
提供了检测手机网络的功能,但这只是知道了用户连接的方式,不清楚用户的真实用户体验,可能用户虽然连接的是WiFi,但网速还不如3G网络。所以只要不是断网条件,用户发起请求时的真实网速才更重要。
因此,封装了这个功能,可以通过该项目ping一下请求的域名,以便得到返回时间,判断用户网络是否在正常范围内。
该功能是基于苹果封装的SimplePing再次封装优化,使用更简单,仅需三步即可调用
通过CocoaPods安装
pod 'HDPingTools'
1、创建ping对象,hostName为自定义的域名
let pingTools = HDPingTools(hostName: "www.apple.com")
2、发起ping
pingTools.start(pingType: .any, interval: .second(10)) { (response, error) in
print(response?.pingAddressIP ?? "")
}
当interval
大于0时,将在固定间隔重复发送ping请求,等于0时只会发起一次ping请求
其中响应的response
包含了以下内容
pingAddressIP
域名对应的ip地址responseTime
ping响应的时间responseBytes
ping响应的字节数
3、关闭请求
pingTools.stop()
4、可选配置
public var timeout: HDPingTimeInterval = .millisecond(1000) //自定义超时时间,默认1000毫秒,设置为0则一直等待
public var debugLog = true //是否开启日志输出
public var stopWhenError = false //遇到错误停止ping
public private(set) var isPing = false //可以判断当前是否有ping任务在进行中
public var showNetworkActivityIndicator: NetworkActivityIndicatorStatus = .auto //是否在状态栏显示
5、可支持在ZXKit显示
该插件已默认整合在ZXKitSwift中,如果您已整合ZXKitSwift
,则无需重复整合
该功能支持在ZXKit显示,如果需要显示,可以使用
pod 'HDPingTools/zxkit'
之后,可在AppDelegate
的启动函数中将注册到ZXKit
即可
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ZXKit.regist(plugin: HDPingTools())
return true
}
注意:如果网站或连接的路由器设置了禁止ping,那么在ping时将报错,需要解除该限制才能正常使用