swift 无法使用“startNetworkSearch”发现本地网络上的设备?

jum4pzuy  于 2023-09-30  发布在  Swift
关注(0)|答案(1)|浏览(130)

我正在使用以下配置。
Xcode 14.3和iOS 16.6.1(Swift语言)和Brother SDK 4.6.4。如文档所示,添加了SDK和plist密钥。
我能够使用上述配置打印标签(在代码中手动添加打印机IPAddress,在打印机Wifi直连和本地Wifi网络的两种情况下进行测试)。但无法使用以下代码发现打印机?

let option = BRLMNetworkSearchOption()
option.searchDuration = 15
 let result = BRLMPrinterSearcher.startNetworkSearch(option) { channel in
 let modelName = channel.extraInfo?.value(forKey: BRLMChannelExtraInfoKeyModelName) as? String ?? ""
 let ipaddress = channel.channelInfo
 print("Channel : \(channel.description)")
 print("Channel Extra info: \(channel.extraInfo)")
 print("Model : \(modelName), IP Address: \(ipaddress)")
 }

请给予任何建议,发现打印机在本地wifi网络。先谢了。

bjp0bcyl

bjp0bcyl1#

经过两天的研究,我能够找到方法。下面是在iOS项目中集成Wifi打印机SDK的过程。

Wifi打印机:-

1.将Net/BRLMPrinterKit.xcframework放在任意位置。
2.将其添加到应用程序目标的嵌入式二进制文件、链接框架和库中。
3.如果需要,添加框架搜索路径和标题搜索路径。
4.在Info. plist中添加NSLocalNetworkUsageDescription(隐私-本地网络使用说明)和NSBonjourServices(Bonjour服务)。
5.在NSLocalNetworkUsageDescription中设置应用中所需的文本值。
6.在NSBonjourServices中设置以下值:_pdl-datastream._tcp_printer._tcp_ipp._tcp.
7.Target->Build Settings->Preprocessor Macros->WLAN_ONLY(如果没有设置,会出现header not found错误。文件中未提及)。
8.将PrinterList.plist(可以在示例项目中找到)文件放在任意位置。搜索打印机时,需要在BRLMNetworkSearchOption上设置printerslist。

相关问题