web应用开发&研究 - 创建于 2014年8月17日

这是一位web前端开发工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于web应用开发&研究工作,专注web前端开发,关注互联网前沿技术与趋势。


Font Awesome | Respond.js | Bootstrap中文网

iOS如何监听弱网?

场景:

iOS中我们可能经常用到监听网络,不过大部分是监听网络的类型,即2G/3G/4G WIFI,是否连接网络,然而测试人员对APP进行测试时候经常会有一个弱网测试,即在弱网环境下对APP进行测试,这个时候APP会出现各种问题,比如接口请求不到数据等问题,那么我们有没有办法像监听网络一样去监听弱网呢?

弱网测试:我们的经常用的抓包工具Charles就可以简易的模拟弱网环境,而我们的真机也可以在调试时候模拟弱网

设置-->开发者-->Status-->Enable打开,然后选择下面的每个选项,就可以模拟弱网了

思考1:

网上查了资料并没有直接监听弱网的资料,那么有什么其他办法可以做到这一点呢?

这个时候我想到了终端的ping命令,对一个baidu.com的ping结果如下:

那么能不能在iPhone上去ping我们的服务器,通过ping的结果去判断我们的网络环境呢?不多说,尝试一下。

Apple提供了一个系统的ping库,有兴趣的可以去看

https://developer.apple.com/library/content/samplecode/SimplePing/Listings/Common_SimplePing_m.html#//apple_ref/doc/uid/DTS10000716-Common_SimplePing_m-DontLinkElementID_4

我偷懒网上找了一个封装好的三方库STSimplePing,加入工程后进行测试结果如下:

正常网络情况下:

将弱网模拟调至100% lose结果如下:

结果都能收集到,若通过Ping判断网络方案合理的话,那么我们可以通过时间和丢包率来判断网络情况

思考2:

参考文档:http://www.cocoachina.com/ios/20160224/15407.html

分析了ReallyReachaAbility监控的原理,ReachaAbility监控网络状态的变化,ping判断网络是否真实连接及状态,通过定时器时时判断网络状态及真实的网络连接情况

posted @ 2016-09-23 17:06  Star1108  阅读(3835)  评论(0编辑  收藏  举报