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

ZAF*_*007 8 uiwebview nshttpcookie ios swift wkwebview

我想登录不同的同一网站的许多帐户webView.例如,我有Tab Bar Controller三个视图控制器,每个视图控制器包含webView.例如,我在每个班级都嵌入了stackoverflow网址webView.用户如何使用这三个帐户同时登录到不同的帐户webView?我试过这个,但我一次只能登录一个用户.我发现我需要cookie为每个人创建单独的UIWebView,但主要是答案是在objective-c而不是我想要的正确答案.例如(First Second Third)任何人都可以告诉我如何做到这一点?

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()
    }


}
Run Code Online (Sandbox Code Playgroud)

谢谢

我执行代码的预览.

Rom*_*lov 6

您可以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)
Run Code Online (Sandbox Code Playgroud)

遗憾的是,webView在重新启动应用程序后,您将丢失数据(例如cookie,缓存等),因为非持久性WKWebsiteDataStore无法保存到磁盘(您可能会注意到这些WKWebsiteDataStore实现NSCoding,但它不适用于非持久性存储).