如何检测是否安装了NEVPNManager配置?

时间:2015-03-23 21:37:09

标签: ios objective-c nevpnmanager

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

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

我使用证书身份验证和中间CA颁发的证书,并尝试评估信任'方法来自:Check if a configuration profile is installed on iOS

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

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

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

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分: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);
       }
   }];

答案 1 :(得分:1)

您可以尝试以下

get-url