我正在构建一个iOS应用程序,在某些时候我需要检查应用程序访问互联网,所以我使用了ReachabilitySwift库 .
经过一些测试,在我看来,该库只检查设备是否连接了wifi,并且没有从我的路由器提供的实际互联网连接 .
让我说我从互联网断开我的路由器,如果我的iOS设备通过wifi连接到路由器,可达性告诉我,我们有互联网连接在哪里实际上我的路由器没有互联网 .
我尝试了与特定主机的可达性,但仍然具有相同的结果
var reachability = Reachability.init(hostname: "google.com");
当无线连接丢失或实际的互联网连接丢失时,可达性库是否应该提供反馈?
先感谢您 .
3 回答
我遇到了与Reachability类似的问题,我正在对VPN保护网络进行Web服务调用 .
var reachability = Reachability.init(hostname: "google.com");
对我没有用,因为当有Wifi连接时它返回true .当对服务器进行虚拟调用时,我使用了
Alamofire
响应在WWDC上,Apple已多次说过,如果您只需要查看WiFi或手机是否已启动 - 请使用Reachable . 如果您需要查看是否可以连接 - 那么请不要使用Reachable;而只是简单地连接和处理错误 .
Reachable实际上并不会检查它是否可以连接到基于IP的资源,以及是否要获得结果 . 唯一的方法就是实际尝试 .
在Apple的WWDC网站上寻找与Quinn的网络会话以查看相同的建议 .
在Reachablility.h你可以找到一个声明:
然后,在
Reachability
类中,您可以找到返回类型的方法:所以,使用它 . 在您的快速代码中,您可以这样做: