Ios NEVPNManager按需回调

Ios NEVPNManager按需回调,ios,ios8,callback,nevpnmanager,Ios,Ios8,Callback,Nevpnmanager,我有一个关于你的问题 LoadPreferenceswithCompletionHandler 及 SavePreferenceswithCompletionHandler 我是经理 例如,在建立按需连接时是否调用此函数的块 如果是,那么它是否会触发应用程序激活 如果没有,那么如果我需要在VPN连接之前做一些准备,我该怎么办 我可以在连接之前设置某种回调吗?不可以。你误解了这个街区的用途 当适当的操作加载或保存vpn配置完成并向您提供NSError对象时,将调用它们,以帮助理解操作是否成功 到目

我有一个关于你的问题

LoadPreferenceswithCompletionHandler

SavePreferenceswithCompletionHandler 我是经理

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

如果是,那么它是否会触发应用程序激活

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


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

不可以。你误解了这个街区的用途

当适当的操作加载或保存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;
}

没有。你误解了这个街区的用途

当适当的操作加载或保存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;
}

谢谢你的回答!但是你可能知道一些私人api吗?事实上,我在应用程序的线程中有一个安全隧道,我想通过它转发vpn连接。对不起,我正在处理应用程序,这些应用程序会上载到AppStore,所以私人api不是一个选项,我还没有深入研究它们。至于转发vpn连接,我认为,如果有可能的话——这只可能在越狱设备上实现,因为NEVPNManager API只是一个“控制开关”,实际的vpn堆栈存在于系统应用程序中。谢谢你的回答!但是你可能知道一些私人api吗?事实上,我在应用程序的线程中有一个安全隧道,我想通过它转发vpn连接。对不起,我正在处理应用程序,这些应用程序会上载到AppStore,所以私人api不是一个选项,我还没有深入研究它们。至于转发vpn连接,我认为,如果可能的话——这只可能在越狱设备上实现,因为NEVPNManager API只是一个“控制开关”,实际的vpn堆栈存储在系统应用程序中。