Отдельное хранилище файлов cookie для двоих (UIWebView или WKWebView)
Я хочу войти в несколько учетных записей одного и того же сайта в разных webView
, Например, у меня есть Tab Bar Controller
который содержит три контроллера представления, и каждый контроллер представления содержит webView
, И, например, я встраивать stackru
URL для webView
в каждом классе. Как пользователь может войти в разные учетные записи одновременно, используя эти три webView
? Я пробовал это, но я могу просто войти один пользователь за раз. Я обнаружил, что мне нужно создать отдельный cookie
для каждого UIWebView
, но в основном ответы нацелены на цель, а не правильный ответ, который я хочу. Например ( Первый Второй Третий) Может кто-нибудь сказать, пожалуйста, как я могу это сделать?
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://stackru.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://stackru.com")
let request = NSURLRequest(URL: requestURL!)
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()
webView.loadRequest(request)
}
func webViewDidFinishLoad(webView: UIWebView) {
activityIndicator.stopAnimating()
}
}
Спасибо
1 ответ
Вы можете сделать это с 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, кэш и т. д.) после перезапуска приложения, поскольку они не являются постоянными WKWebsiteDataStore
не может быть сохранен на диск (вы могли заметить, что WKWebsiteDataStore
инвентарь NSCoding
, но это не работает для непостоянных магазинов).