HDPingTools 2.0.0

HDPingTools 2.0.0

DamonHu维护。



  • DamonHu

HDPingTools

这是一个iOS平台上的Ping工具,使用Swift语言开发。支持使用CocoaPods集成。三步即可使用

这是一个IOS平台用来ping的工具,使用Swift语言开发。支持使用cocoapods集成。三步即可使用

英文文档 | 中文文档

日志 iPhone X状态栏statusBar 状态栏statusBar
the ScreenShot 日志截图预览 the ScreenShot 状态栏 the ScreenShot 状态栏

介绍

尽管AFNetworkingalamofire提供了检测移动网络的功能,但它们只知道用户的网络连接模式,而不知道用户的真实用户体验。也许用户连接到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时会报错。您需要先移除限制才能正常使用

中文介绍

虽然AFNetworkingAlamofire提供了检测手机网络的功能,但这只是知道了用户连接的方式,不清楚用户的真实用户体验,可能用户虽然连接的是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时将报错,需要解除该限制才能正常使用