-
Notifications
You must be signed in to change notification settings - Fork 456
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用1.1.9的版本 测试移动4G 返回的是网络不可用 有啥解决办法 #103
Comments
山东的移动 |
一直显示无法上网,还是可以恢复的? |
我这边也遇到了,移动4G通过 [RealReachability sharedInstance].currentReachabilityStatus 获取到的是 |
找到问题了,应该在appdelegate里增加 [GLobalRealReachability startNotifier]; |
主动调取判断网络的方法 返回值就是RealStatusNotReachable 用git下载的demo也是一样的 用swift写的demo也是一样的结果 |
@BestKai 这个加了 这个是开启监控的方法 |
@hanxueshi 有没有试过换个ping的地址。 |
@BestKai 换成百度的了 结果一样 |
@dustturtle 能否给解答下呢? |
@dustturtle 这个方法调用多次都是noreach状态 |
确定是移动4g问题吗? 可以发个demo到我邮箱,我看一下, openglnewbee@163.com |
我也是,切到Wi-Fi是会正确返回RealStatusViaWiFi而且只会返回一次,但是切到4g会先返回RealStatusViaWWAN,然后又会返回RealStatusNotReachable,总共返回了2次数据,望解答。 |
额,我把RealReachability.m中的#define kDefaultHost @"www.apple.com"改成@"www.baidu.com"就解决这个问题了。另外这个一开始不会去发送通知,所以如果一开始就需要知道网络状况,需要手动发送一次通知。 |
@xyyDDD 一开始会发通知啊,如果方便的话可以发你的demo到我邮箱 openglnewbee@163.com |
定位到JMPingFoundation.m文件第656行self.socket = (CFSocketRef) CFAutorelease( CFSocketCreateWithNative(NULL, fd, kCFSocketAcceptCallBack, SocketReadCallback, &context) ); |
可能是被运营商给搞了?国内运营商套路深啊 |
最近发现这个库的出发点非常好,但是无奈网络环境的限制,比如作者默认设置www.apple.com为Ping地址,实际上在网络比较差的情况,或者www.apple.com发生了错误的时候也会被误判为无网络。无论是设置www.apple.com或www.baidu.com或www.zhihu.com 都会发生不可控事件(通知函数误判,本来有网的)。或者某些路由器限制了ping 的功能,导致发生不可用。所以最后决定,还是用判断网络的,而不用加了ping功能的。这样就算APP连接上了WiFi但是没有网络,再加一个超时的错误页面就可以了,不会导致由于ping误判,而使请求发不出去。 |
@ZhengXueNing master上的最新版本引入了double check机制,可以设置两个ping地址,通过双地址+重试来保证可靠性,欢迎体验,谢谢~ |
你好,我现在使用最新的1.1.9版本,然我把WiFi 设置了一个代理(代理地址不存在),但是我检测时还是提示网络可用“Network wifi! Free” |
@xmokdjs 你用的是pod的1.1.9还是master上最新的版本? |
@dustturtle 你好,我是用pod 'RealReachability' 的方式添加到项目里的; 然后我也下载了Demo,在设置了一个不存在的代理地址后,获取到的网络状态也是为可用的网络“Network wifi! Free”,请问这属于正常结果吗? |
你可以把demo发到我邮箱我看看 openglnewbee@163.com, 理论上不应该出现这种情况 |
@dustturtle 你好已发送到你的邮箱中,麻烦查收一下 |
在当前的版本中这种结果是正常的,代理只代理了http请求,ping包应该会正常发送,从没有代理的网络 |
@dustturtle Pod下来的代码包含double check机制RealReachability及PingHelper代码文件更新不下来,好像只能手动替换 |
@Heyman90 pod的版本不包含doublecheck的,我还没有正式发布pod的新版本,目前需要自己下载替换 |
@dustturtle 好的吧,double check还是有必要的,很多情况下单独的ping并不能准确的反应网络情况,还希望能够早日发布 |
@Heyman90 主要是想收集一点用户反馈,自测没发现问题,计划一周以内发布新的pod版本 |
@dustturtle 目前我们也在针对这个版本做测试和灰度使用,暂未发现问题,确实也解决很多场景下的网络判断问题。有没有比较推荐的host配置,我个人在用我们自己的服务器域名加上www.baidu.com,效果目前看来还不错。 |
如果服务在国内的话就用baidu的和自己的服务器我觉得挺好的,国外的可以用apple的>_< |
@Heyman90 感谢您的反馈! |
@Heyman90 pod version 1.2.0 published |
@dustturtle 好的多谢! |
@Heyman90 有开发者反馈了一个状态通知相关的bug,在一个场景下会出现。为了修复这个bug,发布了新的pod版本,请更新,谢谢! 最新的版本号是1.2.2 |
@dustturtle 好的多谢 |
移动 4G 失败
移动 2G 失败
联通4G 可以
联通3G 可以
联通2G 可以
无线可以
电信 4G可以
电信 3G可以
这个是测试的结果 下面的是
let struts = RealReachability.sharedInstance().currentReachabilityStatus()
if struts == .RealStatusNotReachable {
print("网络不给力啊")
return false
}else{
self.analyzeNetworkType(type: struts)
return true
}
返回值就是false
The text was updated successfully, but these errors were encountered: