为两个单独的cookie存储(UIWebView或WKWebView)

我想在不同的webViewlogin同一网站的许多帐户。 例如,我有Tab Bar Controller包含三个视图控制器和每个视图控制器包含webView 。 例如,我在每个类中embedded了webView stackoverflow url。 用户如何使用这三个webView同时login到不同的账户? 我试过这个,但我可以一次login一个用户。 我发现我需要为每个UIWebView创build单独的cookie ,但主要答案是在objective-c中,而不是我想要的正确答案。 例如( 第一个 第二个 第三 )任何人都可以告诉我,我怎么能做到这一点?

 class FirstViewController: UIViewController , UIWebViewDelegate{ @IBOutlet weak var webView: UIWebView! @IBOutlet weak var activityIndicator: UIActivityIndicatorView! override func viewDidLoad() { webView.delegate = self let requestURL = NSURL(string: "http://stackoverflow.com") let request = NSURLRequest(URL: requestURL!) activityIndicator.hidesWhenStopped = true activityIndicator.startAnimating() webView.loadRequest(request) } func webViewDidFinishLoad(webView: UIWebView) { activityIndicator.stopAnimating() } } class SecondViewController: UIViewController, UIWebViewDelegate{ @IBOutlet weak var webView: UIWebView! @IBOutlet weak var activityIndicator: UIActivityIndicatorView! override func viewDidLoad() { webView.delegate = self let requestURL = NSURL(string: "http://stackoverflow.com") let request = NSURLRequest(URL: requestURL!) activityIndicator.hidesWhenStopped = true activityIndicator.startAnimating() webView.loadRequest(request) } func webViewDidFinishLoad(webView: UIWebView) { activityIndicator.stopAnimating() } } 

谢谢

我的执行代码的预览。

你可以通过使用WKWebView的不同实例来使用WKWebSiteDataStore

 let configuration1 = WKWebViewConfiguration() configuration1.websiteDataStore = WKWebsiteDataStore.nonPersistent() self.webView1 = WKWebView(frame: CGRect.zero, configuration: configuration1) self.view.addSubview(self.webView1) let configuration2 = WKWebViewConfiguration() configuration2.websiteDataStore = WKWebsiteDataStore.nonPersistent() self.webView2 = WKWebView(frame: CGRect.zero, configuration: configuration2) 

不幸的是,在应用程序重新启动之后,您将丢失webView数据(如cookie,caching等),因为非持久WKWebsiteDataStore无法保存到磁盘(您可能注意到WKWebsiteDataStore实现NSCoding ,持久性商店)。