NEVPNManager的onDemandEnabled标志

时间:2016-03-07 08:48:36

标签: ios vpn nevpnmanager

当服务器更新NEVPNProtocol属性时,用户名&密码不再有效,有没有办法解决这个问题?

让我们说如果我们为NEVPNManager打开onDemandEnabled标志,并且当服务器使凭证无效时(因为用户已被列入黑名单),我们是否有办法以编程方式切换?从最终用户的体验角度来看,用户会等待很长时间才能使网页加载失败。如果应用程序被杀死,使用计时器进行后台获取可能不起作用。

除了使用推送通知之外,还有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我自己没有尝试过,但你应该做的是在配置VPN并设置onDemandEnabled时,你需要定义onDemandRules。

你有NEOnDemandRuleDisconnect,它会阻止你的VPN启动,并且如果它已经激活就会断开它。

https://developer.apple.com/library/ios/documentation/NetworkExtension/Reference/NEOnDemandRuleDisconnectClassRef/index.html#//apple_ref/occ/cl/NEOnDemandRuleDisconnect

这种方式即使你的VPN处于活动状态,只有当规则仍然适用时才会使用它。

编辑:你也可以使用onDemandRule - probeURL。有了这个,在激活VPN之前,它会向您选择的服务器发送请求。如果您应该使用VPN,服务器将返回答案。