为两个单独的cookie存储(UIWebView或WKWebView)
我想在不同的webView
login同一网站的许多帐户。 例如,我有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
,持久性商店)。