如何在没有 CaptiveNetwork 弃用框架的情况下在 Swift 2.0 中获取 ssid?
How to get ssid in Swift 2.0 without CaptiveNetwork deprecated framework?
在另一个问题 Get SSID in Swift 2 中找到的解决方案均无效,因为 CaptiveNetwork 框架在 Swift 2.0
中已弃用
在Swift1.2 a中使用这个函数:
func getSSID() -> String {
let interfaces = CNCopySupportedInterfaces()
if interfaces == nil {
return ""
}
//let interfacesArray = interfaces.takeRetainedValue() as! [String]
let interfacesArray = Array(arrayLiteral: interfaces)
if interfacesArray.count <= 0 {
return ""
}
let interfaceName = String(interfacesArray[0])
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
if unsafeInterfaceData == nil {
return ""
}
let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
print(interfaceData["SSID"], terminator: "")
return interfaceData["SSID"] as! String
}
但是下面的代码不再有效..
据我所知,CaptiveNetwork APIs 在 iOS 9 中已被弃用,但仍然可用——因此您仍然可以使用它们(后果自负,因为未来的更新可能会导致它们不再按预期工作)。如果它们在 Swift 中不可见,您可以通过 ObjC 桥接 header.
使它们可见
这不是我经常使用的领域,但看起来新的网络扩展 API 无论如何都打算取代 CaptiveNetwork。参见 Network Extension Framework Reference for docs and the WWDC15 session What's New in Network Extension and VPN。
在另一个问题 Get SSID in Swift 2 中找到的解决方案均无效,因为 CaptiveNetwork 框架在 Swift 2.0
中已弃用在Swift1.2 a中使用这个函数:
func getSSID() -> String {
let interfaces = CNCopySupportedInterfaces()
if interfaces == nil {
return ""
}
//let interfacesArray = interfaces.takeRetainedValue() as! [String]
let interfacesArray = Array(arrayLiteral: interfaces)
if interfacesArray.count <= 0 {
return ""
}
let interfaceName = String(interfacesArray[0])
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
if unsafeInterfaceData == nil {
return ""
}
let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
print(interfaceData["SSID"], terminator: "")
return interfaceData["SSID"] as! String
}
但是下面的代码不再有效..
据我所知,CaptiveNetwork APIs 在 iOS 9 中已被弃用,但仍然可用——因此您仍然可以使用它们(后果自负,因为未来的更新可能会导致它们不再按预期工作)。如果它们在 Swift 中不可见,您可以通过 ObjC 桥接 header.
使它们可见这不是我经常使用的领域,但看起来新的网络扩展 API 无论如何都打算取代 CaptiveNetwork。参见 Network Extension Framework Reference for docs and the WWDC15 session What's New in Network Extension and VPN。