Прямо сейчас я реализовал простое расширение Packet Tunnel, используя API-интерфейсы Network Extension для iOS 11+.Я хочу, чтобы приложение было только VPN, чтобы трафик из Моего приложения можно было направлять через наш VPN и прокси.Итак, мои вопросы:
- Как остановить туннелирование, когда пользователь переключается на другие приложения. Один из вариантов - использовать методы делегирования приложения
-(void)applicationWillResignActive:(UIApplication *)application
или -(void)applicationDidEnterBackground:(UIApplication *)application
. - Если пользователь непосредственно завершает приложение принудительным завершением работы, то также должен быть отключен VPN - мы можем использовать
-(void)applicationWillTerminate:(UIApplication *)application
, но когда я пытался это иногда, оно не работало должным образом. - Что реализоватьобрабатывать тот же случай, когда приложение падает.- В качестве обходного пути я думал о реализации чего-то вроде механизма пинг-понга, в котором, если приложение активно, оно должно продолжать пинговать или обновлять любые общие данные, к которым будет обращаться расширение Packet Tunnel.Таким образом, в случае, если приложение останавливается или закрывается, Tunnel узнает о неактивности приложения и самостоятельно прекращает туннелирование.
- Чтобы поддерживать VPN-туннелирование активным, нам необходимо периодически обновлять токен, поэтому есть лиспособ обновить настройки VPN и немедленно отразить изменения, не перезапуская (остановите и снова запустите) туннель.
Пожалуйста, предложите правильные решения или обходной путь для вышеупомянутых сценариев.Это было бы мне очень полезно.