我正在使用以下按需连接规则在 Swift 中创建 VPN 连接:
let config = NEVPNProtocolIPSec()
config.serverAddress = ""
config.username = ""
config.passwordReference = ""
config.authenticationMethod = .sharedSecret
config.sharedSecretReference = ""
config.useExtendedAuthentication = true
config.disconnectOnSleep = true
let connectRule = NEOnDemandRuleConnect()
connectRule.interfaceTypeMatch = .any
vpnManager.onDemandRules = [connectRule]
vpnManager.protocolConfiguration = config
vpnManager.localizedDescription = ""
vpnManager.isOnDemandEnabled = true
vpnManager.isEnabled = true
此连接工作正常。如果我使用的是 WiFi,它会在与 WiFi 断开连接后重新连接,但反之则不然。如果正在使用蜂窝连接并尝试激活 WiFi,则手机无法连接到 WiFi,直到我手动断开它与 VPN 的连接。我相信活跃的 VPN 连接会阻止从 4G 切换到 WiFi。
我该如何解决这个问题?