2017-04-07 128 views
2

我用下面的代碼打印在應用程序打印:斯威夫特:無警告框

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 
    } 

它可以成功地進行打印。但是,當功能被觸發時,會有一個警告框指示它正在聯繫打印機並進行打印。有什麼方法可以避免彈出此警報框?我想在後面進行打印,而不會在屏幕上顯示干擾用戶體驗的任何內容(我想在打印機在後面工作時播放電影)。

謝謝。

+0

嘿,你找到解決方案嗎?我想在Objective-C中執行相同的操作或我的iOS應用程序,希望在不使用alertbox的情況下進行打印。請幫助我,如果你發現了。 – Shilpa

回答

1

從iOS 8開始,有一種方法可以在沒有任何介紹 打印UI的情況下進行打印。每次用戶按下打印按鈕時,您都可以提供一種方法讓用戶使用易於使用的UIPrinterPickerController在應用程序的某個地方選擇打印機 。 它接受它的構造了 預選可選UIPrinter情況下,使用相同的顯示選項如上所述, 並具有當用戶已經選擇了她 打印機完成處理程序:


斯威夫特3

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

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

現在你可以告訴你的UIPrintInteractionController直接愈傷組織打印ng printToPrinter(:completionHandler :)與保存的打印機,而不是使用目前的...方法之一。

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

+0

我的代碼已經要求打印機直接打印而不彈出打印界面。我擔心的是彈出一個警告框,允許用戶取消打印服務(當它正在聯繫打印機或顯示其他狀態時)。 – user6539552

+0

我已經在使用printToPrinter方法,正如你可以在我的代碼中看到的那樣。 – user6539552