我需要找到连接到我手机的同一个 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 的resolve
andreject
函数。
谢谢