class LocalNetworkPermissionManager: ObservableObject {
@Published var localNetworkPermissionGranted: Bool = false
@Published var errorMessage: String?
private var browser: NWBrowser?
func startDiscoveringServices() {
let params = NWParameters()
params.includePeerToPeer = true
let browser = NWBrowser(for: .bonjourWithTXTRecord(type: "_example._tcp", domain: "local."), using: params)
browser.stateUpdateHandler = { newState in
switch newState {
case .ready:
print("Browser is ready")
DispatchQueue.main.async {
self.localNetworkPermissionGranted = true
self.errorMessage = nil
}
case .failed(let error):
print("Browser failed with error: \(error.localizedDescription)")
DispatchQueue.main.async {
self.localNetworkPermissionGranted = false
self.errorMessage = error.localizedDescription
}
default:
break
}
}
browser.browseResultsChangedHandler = { results, changes in
for result in results {
print("Service found: \(result.endpoint)")
}
}
browser.start(queue: .main)
self.browser = browser
}
}
I gave permission from the info plist or tried many ways, but for some reason I can't get permission from the user because it doesn't show up. I tried it on my test devices and it doesn't show up at all.