Как определить, подключен ли пользователь iOS к сотовой сети по сравнению с Wi-Fi?

Вы должны добавить ссылку на пакет NuGet, содержащий требуемый API из другой библиотеки, которую вы пишете. Какую версию вы должны выбрать? Тебе решать. Одна общая философия говорит, чтобы ссылаться на самую низкую версию, которая имеет API, который вы хотите, чтобы ваша библиотека могла использоваться из большинства мест. Любой, ссылающийся на вашу библиотеку, все еще может «поднять» версию до более высокой версии, и вообще нет проблем с этим (исключение происходит, когда происходят нарушения).

Не ссылайтесь на DLL непосредственно с диска , Это вызывает проблемы, такие как затруднение управления источником (разные машины имеют разные пути) и упрощение управления зависимостями (простой способ обновления зависимостей).

1
задан Mendo 18 January 2019 в 20:43
поделиться

2 ответа

надеюсь, что это поможет

   func getWiFiName() -> String? {
            var ssid: String?
            if let interfaces = CNCopySupportedInterfaces() as NSArray? {
                for interface in interfaces {
                    if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
                        ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
                        break
                    }
                }
            }
            return ssid
        }

если это значение вернет ноль, то вы подключитесь через сотовую связь, если устройство подключено к Wi-Fi, тогда оно вернет имя Wi-Fi (SSID), не забудьте включить сеть расширения и доступ к информации Wi-Fi о возможностях проекта

ЭТО НЕ РАБОТАЕТ НА СИМУЛЯТОРЕ (ЭТО ДОЛЖНО БЫТЬ РЕАЛЬНЫМ УСТРОЙСТВОМ) !!!! и добавить эти два

import NetworkExtension

import SystemConfiguration.CaptiveNetwork

0
ответ дан teodik abrami 18 January 2019 в 20:43
поделиться

Вы можете использовать Reachability.swift Либо вы используете это, либо получите некоторое представление о том, как создается и работает какой-то определенный поток.

Он имеет перечисление Connection , которое выглядит следующим образом:

public enum Connection: CustomStringConvertible {
        case none, wifi, cellular
        public var description: String {
            switch self {
            case .cellular: return "Cellular"
            case .wifi: return "WiFi"
            case .none: return "No Connection"
            }
        }
    }

И NetworkStatus :

public enum NetworkStatus: CustomStringConvertible {
    case notReachable, reachableViaWiFi, reachableViaWWAN
    public var description: String {
        switch self {
        case .reachableViaWWAN: return "Cellular"
        case .reachableViaWiFi: return "WiFi"
        case .notReachable: return "No Connection"
        }
    }
}

И оттуда вы может сделать следующее:

  1. Проверить, подключено ли устройство к мобильной сети передачи данных / сотовой связи или Wi-Fi.
  2. Соблюдайте достижимость / подключение к интернету.
0
ответ дан Glenn 18 January 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: