web-dev-qa-db-fra.com

SystemConfiguration.CaptiveNetwork ne fonctionne pas sur iOS 12

J'ai une fonction qui détecte le SSID actuel de l'utilisateur. Malheureusement, cela ne fonctionne plus avec iOS 12. Cela signifie qu'il saute simplement sur la partie if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {. C'est peut-être juste un bug ou il est obsolète. Je n'ai rien trouvé sur Apple Docs. Sur les anciens appareils iOS 11, 10 et 9, cela fonctionne bien.

Voici mon code:

func getWiFiSsid() -> 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


            }
        }
    }
    return ssid
}
16
Victor Lobe

Pour utiliser cette fonction dans iOS 12 et versions ultérieures, activez la fonction Access WiFi Information pour votre application dans Xcode. Lorsque vous activez cette fonctionnalité, Xcode ajoute automatiquement le droit d'accès aux informations WiFi à votre fichier de droits et à votre ID d'application.

https://developer.Apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo?language=objc

enter image description here

34
Ckwanted