0
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.

NomoteteS
  • 1
  • 3
  • Does this answer your question? [iOS 14 How to trigger Local Network dialog and check user answer?](https://stackoverflow.com/questions/63940427/ios-14-how-to-trigger-local-network-dialog-and-check-user-answer) – Yrb Apr 30 '23 at 17:34

0 Answers0