I am encountering an issue when attempting to verify access to the internet from WatchOS on a physical device. Running the code below on a physical device always shows "Not Connected." However, running on the simulator shows "Connected."
import Foundation
import Network
class NetworkMonitor: ObservableObject {
@Published var isConnected: Bool = false
@Published var currentNetworkType: NWInterface.InterfaceType = .other
private let monitor = NWPathMonitor()
init() {
monitor.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.networkStatusDidChange(path)
}
}
monitor.start(queue: DispatchQueue.global(qos: .background))
}
private func networkStatusDidChange(_ path: NWPath) {
isConnected = path.status == .satisfied
currentNetworkType = path.availableInterfaces.first?.type ?? .other
}
deinit {
monitor.cancel()
}
}
import Foundation
import Network
class NetworkMonitor: ObservableObject {
@Published var isConnected: Bool = false
@Published var currentNetworkType: NWInterface.InterfaceType = .other
private let monitor = NWPathMonitor()
init() {
monitor.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.networkStatusDidChange(path)
}
}
monitor.start(queue: DispatchQueue.global(qos: .background))
}
private func networkStatusDidChange(_ path: NWPath) {
isConnected = path.status == .satisfied
currentNetworkType = path.availableInterfaces.first?.type ?? .other
}
deinit {
monitor.cancel()
}
}