WKWebView Screenshots

9

Ich versuche, das Bild, das die Webansicht dem Benutzer anzeigt, zu erfassen, damit ich eine Farbanalyse der Webseite vornehmen kann. Wenn ich versuche, das Bild von seinem Elternteil zu bekommen, bekomme ich im Grunde eine weiße Box, obwohl die Seite gerendert hat:

%Vor%

Es sieht so aus, als ob ich keinen Zugriff auf die Eigenschaften der aktuellen Ansicht (in diesem Fall die Grenzen) innerhalb des WebViews erhalten kann. Wenn ich versuche, darauf zuzugreifen, der Compiler barfs:

/Users/josh/Canary/MacOsCanary/canary/canary/Modules/Overview/Overview.swift:55:37: '(NSView !, stringForToolTip: NSToolTipTag, Punkt: NSPoint, userData: UnsafePointer & lt; () & gt;) - & gt; Schnur! ' hat kein Mitglied namens 'Grenzen'

Ich vermute, dass dies aufgrund des von OS X und iOS verwendeten Ansatzes für Erweiterungen geschieht. Irgendwelche Ideen, oder sollte ich einfach zum alten WebView zurückkehren?

    
Josh Prismon 13.07.2014, 22:32
quelle

3 Antworten

2

Schnell 3

%Vor%

Hinweis: Diese Lösung funktioniert nur unter iOS.

    
quemeful 19.09.2016 21:26
quelle
1

Mir ist klar, dass die Frage für Mac OS X war, aber ich habe diese Seite gefunden, als ich nach einer iOS-Lösung suchte. Meine Antwort unten funktioniert nicht unter Mac OS X, da der API-Aufruf drawViewHierarchyInRect () momentan nur iOS ist, aber ich stelle ihn hier als Referenz für andere iOS-Sucher ein.

Diese Stackoverflow-Antwort löste es für iOS 8 mit einem WKWebView. Der Beispielcode dieser Antwort befindet sich in Objective-C, aber das Swift-Äquivalent, das in einer UIView-Unterklasse oder -Erweiterung verwendet wird, entspricht den folgenden Zeilen. Der Code ignoriert den Rückgabewert von drawViewHierarchyInRect (), aber Sie sollten darauf achten.

%Vor%     
user2067021 25.05.2015 01:42
quelle
0

Ich habe mich heute im selben Boot gefunden, aber eine Lösung gefunden (indem ich private APIs benutzt habe).

Wenn Sie nicht auf den App Store abzielen und generell keine Angst davor haben, private APIs zu verwenden, können Sie Screenshots von WKWebView unter OS X erstellen:

Ссылка

    
lemonmojo 21.08.2015 17:34
quelle

Tags und Links