如何使用2个不同的NSURLSession(iOS Swift)获得2个不同的网页浏览量

时间:2016-05-25 11:56:11

标签: ios swift

我想用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)

1 个答案:

答案 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的答案。