1

我需要找到连接到我手机的同一个 WiFi 的可用打印机。为此,我使用的是 Brother SDK。

我正在使用 React Native 开发本机模块。在这个 SDK 中,我们有startSearchWifi开始搜索的方法,当它完成操作时,该方法didFinishSearch被调用。

这是 SWIFT 中的代码:

@objc(BrotherPrinterTm)
class BrotherPrinterTm: NSObject, BRPtouchNetworkDelegate {

    @objc private var networkManager: BRPtouchNetworkManager?

    
    func startSearchWiFiPrinter() {
        let manager = BRPtouchNetworkManager()
        manager.delegate = self
        manager.startSearch(5)
        self.networkManager = manager
    }

    // BRPtouchNetworkDelegate
    func didFinishSearch(_ sender: Any!) {
        guard let manager = sender as? BRPtouchNetworkManager else {
            return
        }
        guard let devices = manager.getPrinterNetInfo() else {
            return
        }
        for deviceInfo in devices {
            if let deviceInfo = deviceInfo as? BRPtouchDeviceInfo {
                print("Model: \(deviceInfo.strModelName), IP Address: \(deviceInfo.strIPAddress)")
            }
        }
        
    }
    
    @objc static func requiresMainQueueSetup() -> Bool {
        return true
    }
    
}

我想向我的 Javascript 应用程序公开一个名为discoverWiFi管理所有流程并返回承诺的方法。

像这样的东西:

@objc(discoverWiFi:withResolver:withRejecter:)
func discoverWiFi(resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) {
    startSearchWiFiPrinter();
    ...

}

问题是我不知道如何使用在调用 didFinishSearch 时传入 discoverWiFi 的resolveandreject函数。

谢谢

4

0 回答 0