Ios 如何在Swift中手动设置UIWebView的Cookie

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

我需要在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: 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接受策略总是”。因此,如果始终是您想要的,则无需显式设置它。