local network not triggering in swiftUI

85 Views Asked by At
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.

0

There are 0 best solutions below