我有一个主窗口,其中有一个QWebView。 我想永久保留某个网站(例如www.kdkdkkd.com)cookie,因此每次用户关闭并重新打开浏览器时,他都不需要再次登录。
谢谢,
答案 0 :(得分:26)
您需要设置自己的“Cookie Jar”。
QNetworkAccessManager::setCookieJar
。 QNetworkCookieJar
- 因为在浏览器关闭时默认情况下不会保留Cookie:
QNetworkCookieJar
对象出现后 删除,它持有的所有cookie将是 也丢弃了。如果你想保存 饼干,你应该来自 这个类并实现了保存 磁盘到您自己的存储格式。 (来自QNetworkCookieJar
documentation。)
您可以通过推送到每个QNetworkCookieJar::setCookiesFromUrl
上的永久存储(最安全但最慢)或仅在浏览器窗口关闭时执行此操作(整体速度更快但安全性更低,就好像退出异常时,cookie jar不会保存)。
请注意,some cookies不应该被保留,您可以使用QNetworkCookie::isSessionCookie
来确定这一点。
答案 1 :(得分:4)
有一个名为“Browser”的官方Qt演示。它实现了一个CookieJar类,它使用QSettings堆栈支持将cookie保存和加载到.ini文件。
答案 2 :(得分:1)
一旦在NAME(QNetworkAccessManager)中注册了cookie,请将webview设置为使用它:
myWebView->page()->setNetworkAccessManager(myNAM);