iOS 12 及更高版本对状态栏进行了改进,允许第三方应用程序显示网络速度信息。 此功能称为“网速指示器 API”。
使用网速指示器 API
要使用网速指示器 API,应用程序必须包含以下代码:
swift
import Network
let monitor = NWPathMonitor()
monitor.pathUpdateHandler = { path in
if path.status == .satisfied {
let interfaceType = path.availableInterfaces.first ?? "Unknown"
self.updateSpeedIndicator(interfaceType, path.currentPath.isExpensive)
}
}
monitor.start(queue: DispatchQueue.global())
更新速度指示器
收到网络更新后,应用程序可以调用以下方法更新状态栏中的速度指示器:
swift
func updateSpeedIndicator(_ interfaceType: String, _ isExpensive: Bool) {
guard let provider = UIApplication.shared.connectedScenes.first?.activationConditions.network else { return }
provider.beginRequest()
provider.getCurrentNetworkMeasurement { result in
DispatchQueue.main.async {
let speed = result.currentValue / 8
let speedString = "\(Int(speed)) KB/s"
let carrier = provider.carrier?.localizedName ?? "Unknown"
let statusBarManager = UIApplication.shared.statusBarManager
statusBarManager?.networkActivityIndicatorVisible = true
statusBarManager?.networkActivityIndicatorPreferredStyle = .white
statusBarManager?.copyStatusItem(for: .network).title = "\(carrier): \(speedString)"
}
}
}
注意事项
网速指示器 API 仅适用于蜂窝网络。
应用程序必须具有访问网络信息的权限。
网速指示器只能显示下载速度,不能显示上传速度。
应用程序负责确保速度指示器准确且最新。

点赞 (386) 收藏 (386)

8条宽带网速叠加

苹果移动数据在哪里

联通月末流量包几号可以办理

oppo手机移动数据不见了

电脑状态栏网速