Ios 如何在Swift中手动设置UIWebView的Cookie
我需要在swift中为webview设置cookie。我找到了一个解决方案,但它是针对objective-c的。用Swift怎么做Ios 如何在Swift中手动设置UIWebView的Cookie,ios,objective-c,swift,Ios,Objective C,Swift,我需要在swift中为webview设置cookie。我找到了一个解决方案,但它是针对objective-c的。用Swift怎么做 这就是所说的解决方案。您可以使用NSHTTPCookie和NSHTTPCookieStorage在swift中设置cookie,如下所示: let URL = "example.com" let ExpTime = NSTimeInterval(60 * 60 * 24 * 365) func setCookie(key: String, value: AnyO
这就是所说的解决方案。您可以使用
NSHTTPCookie
和NSHTTPCookieStorage
在swift
中设置cookie,如下所示:
let URL = "example.com"
let ExpTime = NSTimeInterval(60 * 60 * 24 * 365)
func setCookie(key: String, value: AnyObject) {
var cookieProps = [
NSHTTPCookieDomain: URL,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: ExpTime)
]
var cookie = NSHTTPCookie(properties: cookieProps)
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie!)
}
Swift 3:
func setCookie(key: String, value: AnyObject) {
let cookieProps: [HTTPCookiePropertyKey : Any] = [
HTTPCookiePropertyKey.domain: URL,
HTTPCookiePropertyKey.path: "/",
HTTPCookiePropertyKey.name: key,
HTTPCookiePropertyKey.value: value,
HTTPCookiePropertyKey.secure: "TRUE",
HTTPCookiePropertyKey.expires: NSDate(timeIntervalSinceNow: ExpTime)
]
if let cookie = NSHTTPCookie(properties: cookieProps) {
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie)
}
}
设置cookieAcceptPolicy
,如下所示:
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always
Swift 3
HTTPCookieStorage.shared.cookieAcceptPolicy = HTTPCookie.AcceptPolicy.always
请注意,在Objective-C和旧版本的Swift中,这是NSHTTPCookieAcceptPolicyAlways
希望这有帮助:)在swiftI中转换代码我不知道objective-c。有时我成功地将objective-c代码转换为swift,但我无法转换第一部分:[[NSHTPCookieStorage SharedHTPCookieStorage]setCookieAcceptPolicy:NSHTPCookieAcceptPolicyAlways];NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy=NSHTTPCookieAcceptPolicyAlways这是swiftvar cookies中该部分的转换:[NSHTTPCookie]=NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as[nshttpcookies]对于cookie:nshttpcookies中的NSHTTPCookie作为[nshttpcookies]{如果cookie.name作为字符串==“CookieName”{var cookieValue:String=“CookieName=”+cookie.value!as String//如果要将yourRequest.setValue(cookieValue,forHTTPHeaderField:“cookie”)}我将使用WKWebVIEW,而不是被禁止的UIWebVIEW:在iOS 8和以后运行的应用程序中,使用WKWebVIEW类而不是使用UIWebVIEW。此外,如果您呈现不应该运行JavaScript的文件,请考虑将WKPosivor属性JavaCRIPPTIN设置为“否”。->“默认Cookie接受策略总是”。因此,如果始终是您想要的,则无需显式设置它。