有谁能告诉我如何在Swift中创建WKProcessPool?我不熟悉Objective-C。 我必须创建一个WKProcessPool才能与所有WKWebViews共享cookie。我想在显示另一个具有相同类的viewcontroller时保留cookie。我试过以下但是没有用。
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView = WKWebView()
override func viewDidLoad() {
super.viewDidLoad()
let processPool = WKProcessPool()
let configuration = WKWebViewConfiguration()
configuration.processPool = WKProcessPool()
webView.navigationDelegate = self
view.addSubview(webView)
}
}
答案 0 :(得分:1)
您需要使用configuration.websiteDataStore属性而不是processpool。
对于存储的cookie,请使用WKWebsiteDataStore.default()值。 对于私人浏览,请使用WKWebsiteDataStore.nonPersistent()。
答案 1 :(得分:0)
苹果网站说:
<块引用>如果您的应用创建了多个 Web 视图,请分配相同的 WKProcessPool 反对可以安全地共享进程空间的 Web 视图。实例化 此类的一个实例并将其分配给的 processPool 属性 每个 Web 视图的 WKWebViewConfiguration 对象。
但是,您将 processProtocol
设置为类 ViewControler
。然后,每次实例化视图时都会重新定义它。这样做:
import UIKit
import WebKit
let processPool = WKProcessPool()
class ViewController: UIViewController, WKNavigationDelegate { var webView = WKWebView()
override func viewDidLoad() {
super.viewDidLoad()
let configuration = WKWebViewConfiguration()
configuration.processPool = WKProcessPool()
webView.navigationDelegate = self
view.addSubview(webView)
}
}