WKWebView: "createPDFWithConfiguration:completionHandler:" unter iOS 14 unbekannt?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WKWebView: "createPDFWithConfiguration:completionHandler:" unter iOS 14 unbekannt?

    Hallo zusammen!

    Ich bin gerade maximal verwirrt:

    In meiner App habe ich eine WKWebView, deren Inhalt ich gerne per UIActivityViewController als PDF teilen würde. Bisher hatte ich diese Funktion hinten angestellt, da mir alle Lösungsansätze recht "hacky" erschienen und ich in den Apple-Dokumentationen die Methode "createPDFWithConfiguration:completionHandler:" für iOS 14 gesehen hatte.

    Gestern Xcode 12 installiert wollte ich nun diese Funktion nachrüsten, aber sie wird nicht als Methode von WKWebView erkannt, obwohl die Dokumentation sie nun als verfügbar aufführt (leider ohne jeglicher Erklärung). Auch die Klasse WKPDFConfiguration des notwendigen Parameters kennt Xcode nicht. Die Fehlermeldungen heissen lapidar "Unknown receiver..." bzw. "No visible @interface for "WKWebView" declares the selector...".

    Das Base SDK sollte mit Xcode 12 doch auf iOS 14 gesetzt sein, oder? Was übersehe ich?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Interessante Funktion, musste ich gleich mal probieren. Ohne was an den Settings zu ändern, funktioniert es bei mir quick und dirty:

    Quellcode

    1. if (@available(iOS 14.0, *)) {
    2. [_webView createPDFWithConfiguration:nil completionHandler:^(NSData* data, NSError* error) {
    3. int x = 1;
    4. }];
    5. } else {
    6. // Fallback on earlier versions
    7. }

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tolibi ()

  • Wie sagt ich das jetzt? Es funktioniert nun und ich habe nix geändert ... ehrlich nicht ... und git bestätigt das :)

    Vielleicht habe die diversen Xcode-Crashes seit dem dazu beigetragen. Nun wechsle ich noch auf die Download-Version, um die Dokumentation nutzen zu können, dann kann ich endlich wieder sinnvoll weiterarbeiten...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ich bin so ein Trottel...

    Eigentlich wollte ich ja gar kein PDF exportieren, sondern die WKWebView nur drucken. Als ich nun bei Paginieren des o. g. PDFs scheiterte und etwas intensiver Google bemühte, stellte ich fest, dass Drucken überhaupt kein Problem wäre (und ich nicht auf iOS 14 hätte warten müssen). Einfach den viewPrintFormatter der View verwenden und gut. Wer wirklich ein PDF braucht, kann ja in die Druckvorschau zoomen..

    Quellcode

    1. - (void)printReport:(id)sender
    2. {
    3. UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
    4. if (printController)
    5. {
    6. UIViewPrintFormatter *printFormatter = self.webView.viewPrintFormatter;
    7. UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    8. printInfo.jobName = (self.isOverViewReport) ? NSLocalizedString(@"salesOverviewTitle", @"Title of overview report") : NSLocalizedString(@"salesReportTitle", @"Title of sales report");;
    9. printInfo.outputType = UIPrintInfoOutputGrayscale;
    10. printController.printInfo = printInfo;
    11. printController.printFormatter = printFormatter;
    12. [printController presentAnimated:YES completionHandler:nil];
    13. }
    14. }
    Alles anzeigen
    Keine Ahnung, warum ich bei das bei der ursprünglichen Lösungssuche übersehen konnte :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.