【问题标题】:Reachability Class not working properly for VPN connection可达性类无法正常用于 VPN 连接
【发布时间】:2012-07-10 19:56:57
【问题描述】:

我正在开发一个需要 VPN 连接以进行数据同步的应用程序。我正在使用可达性类来检查主机可用性。
@Functionality :- 当应用程序通过 Junos Pulse 应用程序连接到 VPN 时,如果 VPN 连接丢失,数据同步应该继续,它应该抛出警报消息。现在它适用于下面给出的场景。
@工作场景:- VPN 最初已连接,我完成了同步,然后手动从 Junos Pulse 断开 VPN。现在我正在尝试再次同步它正在引发预期的警报。
@问题场景:-我最初完成了同步并让应用程序空闲以自动断开 VPN。现在VPN消失后,我正在尝试再次同步。它不会通过 VPN 不存在的警报。它尝试同步功能并失败,因为没有 VPN 就无法访问服务器。

在互联网上搜索它的解决方案让我筋疲力尽。我在这里粘贴我的代码 sn-p。任何建议都非常感谢。

-(BOOL)checkHostAvailability
{   
Reachability *objReach = [Reachability reachabilityWithHostName:[self hostServer]];
NetworkStatus hostAvailability = [objReach currentReachabilityStatus];
if(hostAvailability == ReachableViaWiFi || hostAvailability == ReachableViaWWAN) {
    RLog(@"Host is Reachable");
    return YES;
}
return NO;
}

【问题讨论】:

  • 你得到这个问题的解决方案了吗?请务必告诉我。
  • 您找到解决方案了吗? iOS9 面临同样的问题
  • @GopeshGupta - 如果我没记错的话,我每次在检查主机可达性之前都将objReach 分配给nil。看看这是否适合你。我不再在同一个组织交叉验证解决方案:(
  • 谢谢@甘道夫。按照您的建议进行。但不工作

标签: ios vpn reachability


【解决方案1】:

iOS 中似乎存在错误。当您使用蜂窝连接(或 WiFi)连接 VPN,然后切换到 WiFi(或蜂窝)时,系统不会检测到这一点。 Reachability 不会发布任何通知,因为 iOS 仍然认为您尚未切换界面。

我设法通过以下方式重现了它:

  1. 使用 NetworkExtension 框架在 3G 上连接 VPN,禁用随需应变。
  2. 切换到 WiFi 网络。
  3. 从 WiFI 路由器上拔下网线,路由器无法共享互联网。
  4. 检查设备上是否有 Internet 与活动 VPN。

它就在那里。这意味着,所有流量都来自蜂窝网络。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多