小编Jos*_*mon的帖子

WKWebView截图

我正在尝试捕获webview正在向用户显示的图像,因此我可以对网页进行一些颜色分析.当我试图从它的父母那里获取图像时,我基本上得到一个白色的盒子,即使页面已呈现:

func makeImageSnapshot()-> (NSImage)
{


    let imgSize = self.view.bounds.size
    let bir = self.viewbitmapImageRepForCachingDisplayInRect(self.webView!.view.bounds)

    bir.size = imgSize
    self.webView.cacheDisplayInRect(self.view.bounds, toBitmapImageRep:bir)

    let image = NSImage(size:imgSize)
    image.addRepresentation(bir)
    self.image = image

    return image
}

func saveSnapshot()
{
    let imgRep = self.image!.representations[0]
    let data = imgRep.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: nil)
    data.writeToFile("/tmp/file.png", atomically: false)

}
Run Code Online (Sandbox Code Playgroud)

在我看来,我无法访问webView内部的实际视图(在本例中为边界)的属性.当我尝试访问它时,编译器barfs:

/Users/josh/Canary/MacOsCanary/canary/canary/Modules/Overview/Overview.swift:55:37:'(NSView!,stringForToolTip:NSToolTipTag,point:NSPoint,userData:UnsafePointer <()>) - > String! " 没有名为'bounds'的成员

我的猜测是,由于OS X和iOS使用的扩展方法,这种情况正在发生.任何想法,还是我应该回到使用旧版WebView?

swift

10
推荐指数
1
解决办法
3196
查看次数

标签 统计

swift ×1