Dom*_*yan 5 wifi ios testflight captivenetwork swift
下面是我用来获取当前 WiFi SSID 并将其显示在我的应用程序中的代码。
我将位置权限设置为始终,以及所需的 Privacy info.plist 值。我也有Access WiFi Information能力添加到我的项目中。当我将应用程序从 Xcode 构建到我的 iPhone(不是模拟器)时,它工作正常,我可以看到我的 WiFi SSID。但是,当我通过 Testflight 分发应用程序时,它不再起作用,它什么也没有返回。
import SystemConfiguration.CaptiveNetwork
private func getWiFiSsid() -> 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
}
Run Code Online (Sandbox Code Playgroud)
由于CNCopyCurrentNetworkInfo从 iOS 14 ( https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo ) 开始已弃用,请考虑迁移到NEHotspotNetwork.fetchCurrent,我们可以在用户授权的情况下使用此方法来访问精确位置,例如:
import CoreLocation
import NetworkExtension
var locationManager: CLLocationManager?
...
locationManager = CLLocationManager()
locationManager?.delegate = self
locationManager?.requestAlwaysAuthorization()
...
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedAlways || status == .authorizedWhenInUse {
NEHotspotNetwork.fetchCurrent { hotspotNetwork in
if let ssid = hotspotNetwork?.ssid {
print(ssid)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您必须Access WiFi Information在权利文件Privacy - Location Always and When In Use Usage Description和Privacy - Location When In Use Usage DescriptionInfo.plist 中设置为 YES。
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |