微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在具有委托的 iOS 本机模块中管理 React Native 的承诺?

如何解决如何在具有委托的 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 中传递的 resolvereject 函数

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。