【发布时间】:2013-04-23 11:59:42
【问题描述】:
我需要以编程方式检测 iphone 是否连接到 VPN。我正在开发一个尝试加载 URL 的应用程序,此页面仅在设备连接到 VPN 时打开。在加载此 URL 之前,我需要检查 VPN 连接。我尝试了以下 .但这并没有按预期工作。
- (BOOL)checkForVPNConnectivity {
NSDictionary *dict = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());
//NSLog(@"cfnetwork proxy setting : %@", dict);
return [dict count] > 0;
}
【问题讨论】:
-
什么是
CFNetworkCopySystemProxySettings在 VPN 连接和 VPN 未连接时返回?你说它“没有按预期工作”,但你没有说它在做什么。 -
当我们连接到 VPN 时,CFNetworkCopySystemProxySettings 应该返回超过零个对象。
-
我也看到过建议
CFNetworkCopySystemProxySettings的帖子。但对我来说,在蜂窝网络上我看到零条目,但每当我在我的家庭 wifi 上时看到几个条目(但在任何一种情况下都没有 VPN)。归根结底,条目的存在或不存在显然不是检测 VPN 的有效方法。希望下面的SystemConfiguration.framework建议会更有希望。
标签: iphone ios objective-c vpn