Получение статуса VPN-подключения на Xamarin.ios - PullRequest
0 голосов
/ 28 февраля 2019

Мы конвертируем мобильное приложение из нативного iOS (Swift) в Xamarin.iOS (чтобы его можно было в конечном итоге развернуть на нескольких операционных системах).

Я пытаюсь выяснить, как сделать следующее в Xamarin.iOS: 1 - Проверьте, активно ли VPN-соединение на устройстве iOS. 2 - Откройте экран настроек VPN (или лучше, включите конкретный VPN автоматически)

Для: 1 - Это https://docs.microsoft.com/en-us/dotnet/api/networkextension.nevpnstatus применимо?2 - То же самое для https://docs.microsoft.com/en-us/dotnet/api/networkextension.netunnelprovidermanager?

Фрагменты из существующего кода Swift:

func connectToVpn(){ //mention the connection name instead of exposing the server //let connectUrl = URL(string: "mobileconnect://connect?name=*********") let connectUrl = URL(string: "mobileconnect://connect?") if UIApplication.shared.canOpenURL(connectUrl!) == true { UIApplication.shared.openURL(connectUrl!) } } var isVpnConnected : Bool { let dict = CFNetworkCopySystemProxySettings()?.takeUnretainedValue() as? [String: AnyObject] guard let keys = dict?["__SCOPED__"]?.allKeys as? [String] else{ return false } for key in keys { if key.contains("tap") || key.contains("tun") || key.contains("ppp") { return true } } return false } Будем весьма благодарны за любые комментарии / предложения / ссылки на видео YouTube / записи в блогах.

Изменить: для 1 - понял, мне не нужно проверять состояние VPN, просто пинговать внутренний сервер / хост, чтобы посмотреть, отвечает ли он.

1 Ответ

0 голосов
/ 01 марта 2019

iOS только позволяет открывать страницу настроек вашего собственного приложения из вашего приложения.Если ваше приложение не реализует свою собственную страницу настроек, тогда откроется главная страница настроек, но вы не сможете открыть определенную страницу настроек системы.См. Это обсуждение в другом месте на SO: Как программно открыть Настройки, как в приложении Facebook?

...