当前位置: 首页 > 知识库问答 >
问题:

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

龚德本
2023-03-14

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

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

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

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

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

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

如有任何建议,我们将不胜感激。

共有2个答案

呼延钱明
2023-03-14

可能会晚一点。但我也遇到过同样的问题。不过,你的做法让我找到了正确的方向。您应该在LoadFromPreferencesWithCompletionHandler的完成处理程序中加载它

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

   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);
       }
   }];
乐正锦
2023-03-14

您可以尝试以下操作

if ([[[NEVPNManager sharedManager] connection] status] == NEVPNStatusInvalid) {
    //...
}
 类似资料:
  • 问题内容: 如何检查Mac上是否安装了Java SDK? 为此有命令行吗? 问题答案: 在终端会做

  • 在我们的应用程序中使用PHP检查包(任何版本)是否已安装/存在的最干净的方法是什么? 基本上,在我们的应用程序中,我们希望调用具有以下签名的函数: bool函数hasComposerPackage(字符串$PackageName) 这个函数必须包含什么,这样我们才能做这样的事情: 理想情况下,这需要在没有任何命令行exec调用的情况下发生,并且在这个过程中不应该自动加载任何不必要的文件。

  • 问题内容: 我正在尝试在客户端计算机上安装Java Windows应用程序。我想检查计算机上是否安装了必需的JRE。我想通过Java程序而不是通过cmd命令进行检查 问题答案: 如果您使用的是Windows或Linux操作系统,则在命令提示符/终端中输入 如果正确安装了Java,那么您将得到类似的内容 旁注: 在Windows操作系统上安装Java之后,将PATH变量更改为添加java.exe,因

  • 我正在检查我的应用程序中是否安装了Google Play,但似乎没有办法。我遵循了这里的帖子,但仍然不起作用,始终返回true即使我使用模拟器进行测试,它已经安装了com.android.vending。那么,我是否检查了错误的包名?有什么想法吗? 提前感谢!

  • 我有一台带OS X 10.8.2的macbook pro。XCode已安装。我知道它出现在应用程序目录中。在/usr/bin中还有xcode build和xcode select文件,我需要知道是否安装了命令行工具。有命令吗?如何查看是否安装了XCode CLT,如果是,如何查找已安装的版本?

  • 问题内容: 今天早上有一篇帖子问有多少人禁用JavaScript。然后我开始想知道可以使用什么技术来确定用户是否禁用了它。 有谁知道一些简短/简单的方法来检测是否禁用了JavaScript?我的目的是警告您,如果没有启用JS的浏览器,站点将无法正常运行。 最终,我想将它们重定向到可以在没有JS的情况下运行的内容,但是我需要将此检测作为占位符才能启动。 问题答案: 我假设你正在尝试确定是否提供Jav