如何从Brother SDK查找IOS上的打印机?
我从iPad中找到打印机设置print可以找到我兄弟的打印机 但是当我尝试代码时,我得到了空的设备列表,我不知道为什么 我不熟悉斯威夫特。我只是尝试一下官方文档中的示例代码。 这是我的密码:如何从Brother SDK查找IOS上的打印机?,ios,swift,Ios,Swift,我从iPad中找到打印机设置print可以找到我兄弟的打印机 但是当我尝试代码时,我得到了空的设备列表,我不知道为什么 我不熟悉斯威夫特。我只是尝试一下官方文档中的示例代码。 这是我的密码: func getPrinter() { let printerManager = BRPtouchNetworkManager() printerManager.setPrinterName("Brother QL-720NW") printerManager.startS
func getPrinter() {
let printerManager = BRPtouchNetworkManager()
printerManager.setPrinterName("Brother QL-720NW")
printerManager.startSearch(5)
printerManager.getPrinterNetInfo()
print("start")
let testFind = YourClass()
print("1")
testFind.startSearchWiFiPrinter()
testFind.didFinishSearch(printerManager)
print("2")
}
class YourClass: NSObject, BRPtouchNetworkDelegate {
private var networkManager: BRPtouchNetworkManager?
func startSearchWiFiPrinter() {
print("3")
let manager = BRPtouchNetworkManager()
manager.delegate = self
manager.startSearch(5)
self.networkManager = manager
}
// BRPtouchNetworkDelegate
func didFinishSearch(_ sender: Any!) {
print("4")
guard let manager = sender as? BRPtouchNetworkManager else {
print("5")
return
}
guard let devices = manager.getPrinterNetInfo() else {
print("6")
return
}
print(devices)
print("7")
for deviceInfo in devices {
print("8")
if let deviceInfo = deviceInfo as? BRPtouchDeviceInfo {
print("Model: \(deviceInfo.strModelName), IP Address: \(deviceInfo.strIPAddress)")
}
}
}
}
我调用我的函数getPrinter()
,这是我的打印日志:
SDK文档提供了两种方法的示例实现:
func startSearchWiFiPrinter() {}
及
在要执行搜索的类中,必须实现这些。您还需要声明类以参加协议BRPtouchNetworkDelegate
。最后一件事是拥有一个能够容纳网络管理器的属性(在以下行中完成:private var networkManager:BRPtouchNetworkManager?
)
但是,您不应该自己调用“didFinishSearch”方法。调用startSearchWiFiPrinter
时,搜索开始,BRPtouchNetworkManager实例本身调用didFinishSearch
方法。它能够这样做,因为您在以下行中设置了代理:manager.delegate=self
您不应该需要两个类。您也不应该使用两个BRPtouchNetworkManager实例
试试这个。请记住,您在startSearchWiFiPrinter
的参数中输入的数字表示搜索的时间(以秒为单位)
class EXAMPLEClass: NSObject, BRPtouchNetworkDelegate {
private var networkManager: BRPtouchNetworkManager?
func getPrinter() {
self.startSearchWiFiPrinter()
}
func startSearchWiFiPrinter() {
let manager = BRPtouchNetworkManager()
manager.delegate = self
manager.setPrinterName("Brother QL-720NW")
manager.startSearch(5)
self.networkManager = manager
}
// BRPtouchNetworkDelegate
func didFinishSearch(_ sender: Any!) {
print("4")
guard let manager = sender as? BRPtouchNetworkManager else {
print("5")
return
}
guard let devices = manager.getPrinterNetInfo() else {
print("6")
return
}
print(devices)
print("7")
for deviceInfo in devices {
print("8")
if let deviceInfo = deviceInfo as? BRPtouchDeviceInfo {
print("Model: \(deviceInfo.strModelName), IP Address: \(deviceInfo.strIPAddress)")
}
}
}
}
非常感谢你的帮助!我稍后会尝试代码并让您知道。谢谢,很抱歉,您解释得很清楚,我尝试代码并调用有趣的
startSearchWiFiPrinter
,但是didFinishSearch
不会被触发。harrumph。我们一直在尝试使用Swift 5/Xcode12/IOS14来实现这一点,代码崩溃了。很难知道它在哪里崩溃,它在库/框架中的某个地方。
class EXAMPLEClass: NSObject, BRPtouchNetworkDelegate {
private var networkManager: BRPtouchNetworkManager?
func getPrinter() {
self.startSearchWiFiPrinter()
}
func startSearchWiFiPrinter() {
let manager = BRPtouchNetworkManager()
manager.delegate = self
manager.setPrinterName("Brother QL-720NW")
manager.startSearch(5)
self.networkManager = manager
}
// BRPtouchNetworkDelegate
func didFinishSearch(_ sender: Any!) {
print("4")
guard let manager = sender as? BRPtouchNetworkManager else {
print("5")
return
}
guard let devices = manager.getPrinterNetInfo() else {
print("6")
return
}
print(devices)
print("7")
for deviceInfo in devices {
print("8")
if let deviceInfo = deviceInfo as? BRPtouchDeviceInfo {
print("Model: \(deviceInfo.strModelName), IP Address: \(deviceInfo.strIPAddress)")
}
}
}
}