我想用2个Webview(1 Shop,1 Logged-In Shop)创建一个iOS应用程序
如果我在一个webview中登录,则其他webview包含相同的cookie,并且第一个webview也会被登录。
我需要第一个拥有它自己的会话(cookies)!
我的计划是保存一个名为Touch-ID的登录名,免费的每个人都可以使用网页浏览。
我目前正在寻找2个半小时,尝试了类似的东西:
let request = NSMutableURLRequest(URL: NSURL(string: "https://www.my-url.com")!)
request.setValue("", forHTTPHeaderField: "Cookie")
webView.loadRequest(request)
答案 0 :(得分:1)
是的,您可以将Cookie保存到webViewDidFinishLoad
的第一个网页浏览中:
let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies as! [NSHTTPCookie]{
print(cookie)
}
NSUserDefaults.standardUserDefaults().synchronize()
如果您将第二个网页浏览设置为loadRequest
:
var req = NSURLRequest(URL: NSURL(string: urlString)!)
var storage = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as! [NSHTTPCookie]
var reqCookies:[AnyObject] = []
for aCookie in storage {
reqCookies += [aCookie]
}
var headers = NSHTTPCookie.requestHeaderFieldsWithCookies(reqCookies)
self.webView.loadRequest(req)
否则你可以删除:
let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies! {
storage.deleteCookie(cookie)
}
NSUserDefaults.standardUserDefaults().synchronize()
编辑(评论后):管理不同的会话,您可以在此Stackoverflow中查看handle your different sessions的答案。