我知道这已经以几种相关的形式得到了解答,但是我几天都在扭曲我的大脑,试图弄清楚这一点无济于事。我已经尝试过每一个我能找到的解决方案,这个解决方案似乎甚至是远程相关的。
我正在使用WKWebView
并加载网站的网址。在该网站上,用户将登录。为了保持用户登录,我们需要使用cookie维护会话。我在Android上完美运行(使用webview和cookies)。
我需要为iOS设计以下内容:
1)如何查找cookie(如果已存在)并使用URLRequest
发送。
2)如何确保在打开和关闭的应用程序之间维护cookie。
答案 0 :(得分:0)
本准则对我有用 -
在ViewDidLoad方法
中添加此代码 let preferences = WKPreferences()
preferences.javaScriptEnabled = true
preferences.javaScriptCanOpenWindowsAutomatically = true
let wkUController = WKUserContentController()
let cookieScript = WKUserScript(source: "document.cookie = 'Set-Cookie: sessionId =\(Defaults[AppConstants.UD_SESSION_ID].string!)';", injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: false)
wkUController.addUserScript(cookieScript)
let wkWebConfig = WKWebViewConfiguration()
wkWebConfig.userContentController = wkUController
wkWebConfig.preferences = preferences
// Adding webview
webView = WKWebView(frame: self.view.bounds, configuration: wkWebConfig)
var request = URLRequest(url: url)
request.addValue("Set-Cookie: sessionId = \(Defaults[AppConstants.UD_SESSION_ID].string!)", forHTTPHeaderField: "Cookie")
webView?.load(request)
答案 1 :(得分:0)
好,回到这几个月后:/
这很简单。在我嵌入WKWebView的网站的登录页面中,我没有单击“记住我”复选框。我掉了一个洞,认为它与Cookie无关,因为该网站从未保存过,但我从未真正指示它这样做。
希望对任何人都有帮助。我的脸因多次面容而淤青。