【问题标题】:WKWebView WKWebsiteDataStore getAllCookies Doesn't Return the Session CookieWKWebView WKWebsiteDataStore getAllCookies 不返回会话 Cookie
【发布时间】:2020-06-13 19:26:27
【问题描述】:

我刚刚将我们的登录页面从 UIWebView 移动到 WKWebView 并且无法获取登录的会话 cookie。

我使用的方法是 WKWebsiteDataStore getAllCookies 但通常它根本不返回任何 cookie 或旧 cookie,从而阻止用户获取登录的 cookie。这样用户就无法登录我们的应用程序。

我想提一下,有时它可以正常工作,并且我成功获取了登录会话 cookie,但通常它不起作用。

如果能解决这个烦人的问题,我们将不胜感激。

【问题讨论】:

  • 嗨@leonidster,你有任何解决方案/解决方法吗?

标签: ios authentication session-cookies wkwebview


【解决方案1】:

经过一周的努力,我找到了一种方法来让它发挥作用。在这里张贴以防有人需要。

#1 有一个processPoolwesiteDataStore.nonpersistent() 的实例(如果你想在同一个wkWebview 的webview didFinish 导航之外获取Cookie,请将它们设为全局变量)

#2 用这两个创建一个 wkWebviewconfigure 的实例:

var wkWebviewconfigure: WKWebViewConfiguration = WKWebViewConfiguration()
wkWebviewconfigure.processPool = myProcessPool
wkWebviewconfigure.websiteDatastore = myWebsiteDatastore // <--- have to be nonpersistent type

#3 使用此 wkWebviewconfigure 从代码生成 webview,将 wkWebviewconfigure 从 .xib 和情节提要分配给您的 wkWebview.configuration 将不起作用

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多