據我測試,方法takeSnapshot(with:completionHandler:)
實際存在的實例方法和按預期工作。
只是這有點難以使用它。
該方法聲明其第一個參數爲WKSnapshotConfiguration?
,但類WKSnapshotConfiguration
未導入import WebKit
。您可以將nil
傳遞給參數,但要使用該方法,則需要導入類型WKSnapshotConfiguration
。我找不到任何從屬子模塊導入WKSnapshotConfiguration
。
所以,如果你想玩這個新功能,你需要創建一個帶有橋接頭的應用程序項目。 (。如果你知道如何在操場上用橋接頭,您可以在它測試此功能,但我不知道你是否可以或如何)
{}項目名-Bridging-Header.h:
@import CoreGraphics;
#import <WebKit/WKSnapshotConfiguration.h>
而且ViewController.swift的例子:(放置一個WKWebView
,一個UIImageView
並在視圖中UIButton
)
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var webView: WKWebView!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let request = URLRequest(url: URL(string: "http://apple.com")!)
webView.load(request)
}
@IBAction func buttonPressed(_ sender: UIButton) {
webView.takeSnapshot(with: nil) {image, error in
if let image = image {
self.imageView.image = image
print("Got snapshot")
} else {
print("Failed taking snapshot: \(error?.localizedDescription ?? "--")")
}
}
}
}
此外,這似乎是一個WebKit框架的錯誤,您最好發送一個bug report給Apple。
同意OOPer,這絕對是一個bug:http://www.openradar.me/radar?id=5066137213599744 – JAL