Флаг onDemandEnabled NEVPNManager

Когда свойство NEVPNProtocol обновляется сервером так, что имя пользователя и пароль больше недействительны, есть ли способ справиться с этим?

Допустим, если мы включим флаг onDemandEnabled для NEVPNManager, и когда сервер аннулирует учетные данные (поскольку пользователь был внесен в черный список), есть ли способ программно переключить это? С точки зрения конечного пользователя, пользователь будет долго ждать сбоя загрузки веб-страницы. Фоновая выборка с использованием таймера может не работать, если приложение убито.

Есть ли лучший способ решить эту проблему, кроме использования push-уведомлений?


person Siddharthan Asokan    schedule 07.03.2016    source источник


Ответы (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 или нет.

person Roee84    schedule 13.03.2016