WKWebView WKWebsiteDataStore getAllCookie 不返回会话 Cookie



我刚刚将登录页面从UIWebView移动到WKWebView,在获取登录会话cookie时遇到问题。

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

我想提到的是,有时它工作得很好,我成功地获得了登录会话cookie,但通常它不工作。

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

经过一周的努力,我找到了一种让它发挥作用的方法。在这里张贴以备不时之需。

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

#2使用以下两个创建wkWebviewconfigure的实例:

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

#3使用此wkWebviewconfigure从代码生成Web视图,从.xib将wkWebviewconfigure分配给wkWebview.configuration,并且情节提要将无法在中工作

最新更新