相关疑难解决方法(0)

我可以设置WKWebView使用的cookie吗?

我正在尝试将现有的应用程序从UIWebView切换到WKWebView.当前应用程序管理Web视图之外的用户登录/会话,并将身份验证所需的cookie设置为NSHTTPCookieStore.不幸的是,新的WKWebView不使用NSHTTPCookieStorage中的cookie.还有另一种方法来实现这一目标吗?

cookies uiwebview ios ios8 wkwebview

111
推荐指数
10
解决办法
11万
查看次数

从WKWebView获取所有cookie

虽然UIWebView通过使用来获取cookie 似乎很简单NSHTTPCookieStorage.sharedHTTPCookieStorage(),但它似乎WKWebView将cookie存储在其他地方.

我做了一些研究,然后我从NSHTTPURLResponse对象中抓取了一些饼干.但是,这并不包含以下所用的所有Cookie WKWebView:

func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {

  if let httpResponse = navigationResponse.response as? NSHTTPURLResponse {
    if let headers = httpResponse.allHeaderFields as? [String: String], url = httpResponse.URL {
      let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headers, forURL: url)

      for cookie in cookies {
        logDebug(cookie.description)

        logDebug("found cookie " + cookie.name + " " + cookie.value)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是WKWebsiteDataStore,ios 9中还有一个负责管理cookie WKWebView的类,但是,该类不包含检索cookie数据的公共方法:

let storage = WKWebsiteDataStore.defaultDataStore() …
Run Code Online (Sandbox Code Playgroud)

webkit uiwebview ios swift wkwebview

58
推荐指数
6
解决办法
5万
查看次数

标签 统计

ios ×2

uiwebview ×2

wkwebview ×2

cookies ×1

ios8 ×1

swift ×1

webkit ×1