0

Apple 编写的 Reachability.h 类中的 connectionRequired 变量是什么意思?用简单的英语?

//WWAN may be available, but not active until a connection has been established.
//WiFi may require a connection for VPN on Demand.
- (BOOL) connectionRequired;

是否意味着:

——你可以连接,但你还没有连接?--你需要密码 --你需要VPN

我什么时候需要检查这个变量是否为真?

4

2 回答 2

2

这意味着手机有可用的互联网连接,但配置为通过 VPN 隧道连接,无法连接到 VPN 服务器。以这种方式配置的电话通常是公司电话,这样做是为了允许访问 Intranet 和跟踪电话活动等。

理想情况下,当您检查互联网连接时,您应该始终检查此项,因为除非所有者在“设置”中将其关闭,否则在 VPN 服务器再次可用之前,手机将无法获取任何数据。

于 2013-06-07T08:11:36.920 回答
0

来自可达性.m

    if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0)
    {
        // if target host is reachable and no connection is required
        //  then we'll assume (for now) that your on Wi-Fi
        retVal = ReachableViaWiFi;
    }

...

- (BOOL) connectionRequired;
{
    NSAssert(reachabilityRef != NULL, @"connectionRequired called with NULL reachabilityRef");
    SCNetworkReachabilityFlags flags;
    if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
    {
        return (flags & kSCNetworkReachabilityFlagsConnectionRequired);
    }
    return NO;
}

来自 AppDelegate.m

    if(connectionRequired)
    {
        baseLabel=  @"Cellular data network is available.\n  Internet traffic will be routed through it after a connection is established.";
    }
    else
    {
        baseLabel=  @"Cellular data network is active.\n  Internet traffic will be routed through it.";
    }

所以它粗略地说明了设备是使用 Wi-Fi 还是 3G 以及连接是否处于活动状态或设备是否会建立连接。如果用户使用 VPN,设备会要求他先建立 VPN 连接。

于 2013-06-07T08:33:41.117 回答