ios - 重启应用后NEVPNManager检查是否连接?

标签 ios networkextension nevpnmanager

我使用 NetworkExtension 框架编写了一个 VPN 工具。我可以通过 NEVPNManager.sharedManager 连接 IPSec,并且可以在 VPN 连接状态改变时抓取通知。但是当我终止应用程序并重新打开它时,NEVPNManager.Connect.Status 始终为零,这意味着无法显示正确的连接状态。如何解决?

最佳答案

William Sterling 评论确实有道理,而且对我有用,

在为 NEVPNStatusDidChange 添加观察者之前,为 VPN Manager 对象加载首选项,如下所示,

override func viewDidLoad() {

        super.viewDidLoad()

        self.vpnManager.loadFromPreferences { (error) in
            if error != nil {
                print(error.debugDescription)
            }
            else{
                print("No error from loading VPN viewDidLoad")
            }
        }

        NotificationCenter.default.addObserver(self, selector: #selector(ViewController.VPNStatusDidChange(_:)), name: NSNotification.Name.NEVPNStatusDidChange, object: nil)

     }

关于ios - 重启应用后NEVPNManager检查是否连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39056600/

相关文章:

ios - 使用 NEVPNManager 创建个人 VPN 连接

ios - 如何向 VPN 添加代理配置?

ios - 尝试实例化 AVAudioPlayer 时,NSBundle 找到 mp3 文件但找不到 m4a

IOS Tableview 支持全屏和横屏

javascript - 防止在 iPad Safari 中的网页之间滑动

ios - NEVPNManager 停止使用 iOS 14 测试版

json - 如何使用 iOS Swift 访问设备中的 vpn api url?

android - facebook分享视频不播放

ios - 网络扩展授权,如何启用?

ios - NEPacketTunnelProvider 嗅探器 iOS