如何解决如何在具有委托的 iOS 本机模块中管理 React Native 的承诺?
我需要找到连接到我手机相同 WiFi 的可用打印机。为此,我使用了 brother SDK。
我正在使用 React Native 开发一个 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 时在 findWiFi 中传递的 resolve
和 reject
函数。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。