Swift iOS VPN随需应变规则
我想为ios中的VPN连接创建onDemandRule 要求如下 如果手机和wifi都可用 和wifi ssid=“ABC” 而不是只有VPN会运行,否则它应该停止 我试过遵守规则Swift iOS VPN随需应变规则,swift,xcode,vpn,nevpnmanager,Swift,Xcode,Vpn,Nevpnmanager,我想为ios中的VPN连接创建onDemandRule 要求如下 如果手机和wifi都可用 和wifi ssid=“ABC” 而不是只有VPN会运行,否则它应该停止 我试过遵守规则 let onDemandRule = NEOnDemandRuleConnect() onDemandRule.interfaceTypeMatch = .wiFi onDemandRule.ssidMatch = ["ABC"]
let onDemandRule = NEOnDemandRuleConnect()
onDemandRule.interfaceTypeMatch = .wiFi
onDemandRule.ssidMatch = ["ABC"]
let onDemandRule1 = NEOnDemandRuleConnect()
onDemandRule1.interfaceTypeMatch = .cellular
self.vpnManager.isOnDemandEnabled = true
let onDemandRule2 = NEOnDemandRuleDisconnect()
onDemandRule2.interfaceTypeMatch = .any
self.vpnManager.onDemandRules = [onDemandRule, onDemandRule1, onDemandRule2]
只要我连接到名为ABC的wifi,它就会工作
但如果我关闭手机数据,它不会断开连接。
有人能告诉我我做错了什么吗。你应该像阅读一组防火墙规则一样阅读规则,
NEVPNManager
浏览规则列表,然后遵循适用的第一条规则。在您的示例中,当您关闭手机数据时,它将评估规则1:wifi+SSID“ABC”。如果该规则满足,即您连接到WiFi SSID“ABC”,则vpn将被连接。否则,NEVPNManager
将执行下一条规则
如果您关闭手机,第一条规则仍然适用。(您仍然可以使用WiFi连接)
NEVPNManager
无法区分蜂窝网络的开/关。它只能区分所使用的接口:蜂窝、WiFi或任何接口。谢谢Marcel。。你知道我该如何处理这种情况吗?意味着一旦手机数据关闭VPN就应该停止?除onDemand规则外,还有其他方法吗?VPNManager不关心收音机是否打开,仅当它是主接口时。在配置概要文件参考中,您可以找到您的可能性