ios – 如何在Swift中手动为UIWebView设置Cookie

我需要在 swift中为webview设置一个cookie.我找到了一个解决方案,但它是针对 objective-c的.如何在 Swift中做到这一点?

Is it possible to set a cookie manually using sharedHTTPCookieStorage for a UIWebView?

这是解决方案.

解决方法

您可以使用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!)
}

斯威夫特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

斯威夫特3

httpcookiestorage.shared.cookieAcceptPolicy = HTTPCookie.AcceptPolicy.always

请注意,这是Objective-C和旧版Swift中的NSHTTPCookieAcceptPolicyAlways.

希望这可以帮助:)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...