Swift:没有警告框的打印

时间:2017-04-07 09:05:48

标签: ios swift printing

我在应用程序中使用以下代码进行打印:

    init() {
    self.printInfo.outputType = UIPrintInfoOutputType.photo
    self.printInfo.orientation = UIPrintInfoOrientation.landscape
    self.printController.printInfo = self.printInfo
    self.printer = UIPrinter(url: URL(string: printIP)!)
    // where printIP is a string that give the internal IP of the printer
    debugPrint(printIP)
  }



  func print(image: UIImage) -> Bool {
    self.printController.printingItem = image
    printController.print(to: printer, completionHandler: {(controller, success, error) -> Void in
      if success {
        debugPrint("Printing Completed.")
      } else {
        debugPrint("Printing Failed.")
      }
    })
    return true
  }

它可以成功打印。但是,当触发该功能时,会出现一个警告框,指示它正在与打印机联系并进行打印。有没有办法避免弹出此警报框?我希望在后面进行打印,而不会在屏幕上显示任何干扰用户体验的内容(我想在打印机正在后面工作时播放电影)。

感谢。

1 个答案:

答案 0 :(得分:2)

  

从iOS 8开始,有一种方法可以在没有任何演示的情况下进行打印   打印UI。而不是每次用户按下时呈现UI   打印按钮,您可以为用户提供选择打印机的方法   使用易于使用的UIPrinterPickerController在您的应用程序中的某个位置。   它在其构造函数中接受一个可选的UIPrinter实例   预选,使用与上述相同的演示选项,   并且具有用户选择她时的完成处理程序   打印机:

Swift 3

let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: savedPrinter)
printerPicker.present(animated: true) {
    (printerPicker, userDidSelect, error) in

    if userDidSelect {
        self.savedPrinter = printerPicker.selectedPrinter
    }
}

现在,您可以通过使用保存的打印机调用printToPrinter(:completionHandler :)而不是使用当前的...方法之一来告诉您的UIPrintInteractionController直接打印。

来源: - http://nshipster.com/uiprintinteractioncontroller/