2017-04-07 3 views
2

ich die folgenden Codes für den Druck in der App verwenden:Swift: Drucken ohne Warnfeld

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 
    } 

Es kann erfolgreich drucken. Wenn die Funktion jedoch ausgelöst wird, gibt es eine Alarmbox, die anzeigt, dass sie den Drucker kontaktiert und druckt. Gibt es eine Methode, um das Popup dieser Alarmbox zu vermeiden? Ich möchte, dass der Druck auf der Rückseite erfolgt, ohne dass etwas auf dem Bildschirm angezeigt wird, das die Benutzererfahrung beeinträchtigt (ich möchte einen Film wiedergeben, wenn der Drucker hinten arbeitet).

Danke.

+0

Hey, Sie Lösung für diese aufmerksam geworden? ich möchte dasselbe oder meine iOS App in Objective-C machen, möchte ohne Warnbox drucken. Bitte hilf mir, wenn du etwas gefunden hast. – Shilpa

Antwort

1

Von iOS 8 gibt es eine Möglichkeit zum Drucken ohne Vorlage der Druckoberfläche. Anstatt die Benutzeroberfläche jedes Mal anzuzeigen, wenn der Benutzer eine Druckschaltfläche drückt, können Sie Ihren Benutzern die Möglichkeit geben, einen Drucker irgendwo in Ihrer App mit dem einfach zu verwendenden UIPrinterPickerController auszuwählen. Er akzeptiert eine optionale UIPrinter Instanz im Konstruktor für eine Vorauswahl, die gleichen Präsentationsmöglichkeiten verwendet, wie oben erläutert, und hat einen Abschluss-Handler für, wenn der Benutzer sie Drucker ausgewählt hat:


Swift 3

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

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

Jetzt können Sie Ihre UIPrintInteractionController sagen direkt von Kalli drucken ng printToPrinter (: completionHandler :) mit dem gespeicherten Drucker anstelle einer der aktuellen ... Methoden.

Quelle: - http://nshipster.com/uiprintinteractioncontroller/

+0

Mein Code hat den Drucker bereits aufgefordert, direkt zu drucken, ohne die Druckoberfläche aufzurufen. Was mich betrifft, ist das Popup einer Alarmbox, die es dem Benutzer erlaubt, den Druckdienst abzubrechen (wenn er den Drucker kontaktiert oder einen anderen Status anzeigt). – user6539552

+0

Ich verwende bereits die printToPrinter-Methode, wie Sie in meinem Code sehen können. – user6539552