4

我正在使用 NetworkExtension 框架在 iOS 上使用 VPN。我能够安装配置并建立连接。我的问题是是否有办法检测 VPN 配置是否仍然安装或检测用户是否已卸载配置?

我不一定在后台寻找通知或任何东西,但我正在寻找的是当应用程序被带到前台时我所做的一些方法/解决方法?

我正在使用由中间 CA 颁发的证书进行证书身份验证,并尝试从此处“评估信任”方法:检查是否在 iOS 上安装了配置文件

这对我不起作用。我总是变得被信任。我也试过这个:

if([NEVPNManager sharedManager].protocol){
   //installed
}else{
   //not installed
}

但这也行不通。卸载后协议仍然有效。如果我退出并重新启动应用程序,则协议无效。

任何建议表示赞赏。

4

2 回答 2

5

您可以尝试以下

if ([[[NEVPNManager sharedManager] connection] status] == NEVPNStatusInvalid) {
    //...
}
于 2015-10-07T12:10:38.557 回答
1

可能有点晚了。但我遇到了同样的问题。但是,您的方法使我朝着正确的方向前进。您应该在以下完成处理程序中加载它:loadFromPreferencesWithCompletionHandler

在我看来,正确使用检查是否安装了配置文件:

   manager = [NEVPNManager sharedManager];

   [manager loadFromPreferencesWithCompletionHandler:^(NSError *error) {
       if (manager.protocol == nil) {
           NSLog(@"Profile is not installed, you might want to install a profile");
       } else {
           NSLog(@"Profile is installed. It looks like this: %@",manager.protocol);
       }
   }];
于 2015-06-21T17:43:53.140 回答