1

我有一个问题

loadPreferencesWithCompletitionHandler

savePreferencesWithCompletitionHandlerNEVPNManager

例如,在按需连接建立时是否会调用此函数的块?

如果是,那么它是否会触发应用程序变为活动状态?

如果没有,那么如果我需要在 VPN 连接之前做一些准备工作,我该怎么办?

我可以在连接之前设置某种回调吗?

4

1 回答 1

4

没有。你误解了这个块的目的。

它们在适当的操作(加载或保存 vpn 配置)完成时被调用,并为您提供 NSError 对象,以帮助了解操作是否成功。

到目前为止,正如我从官方文档和实验中发现的那样 - 没有官方的方法可以实现,你想要做什么(连接前设置回调)。

NEVPNStatusDidChangeNotification但是,当您的应用程序处于活动状态时,您可以通过 NEVPNManager订阅通知并检查连接状态:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeVpnStatus) name:NEVPNStatusDidChangeNotification object:nil];

和 didChangeVpnStatus 方法:

NEVPNManager * vpnManager = [NEVPNManager sharedManager];
switch (vpnManager.connectionStatus) {
    case NEVPNStatusInvalid:
        break;
    case NEVPNStatusDisconnected:
        break;
    case NEVPNStatusConnecting:
        break;
    case NEVPNStatusConnected:
        break;
    case NEVPNStatusReasserting:
        break;
    case NEVPNStatusDisconnecting:
        break;
}
于 2015-08-26T10:30:00.543 回答