【问题标题】:Qt WebKit and Permanent CookiesQt WebKit 和永久 Cookie
【发布时间】:2011-03-23 14:04:23
【问题描述】:

我有一个主窗口,其中有一个 QWebView。 我想让某个网站(例如 www.kdkdkkd.com)cookie 永久化,这样每次用户关闭并重新打开浏览器时,他都不需要再次登录。

谢谢,

【问题讨论】:

    标签: c++ qt cookies webkit qwebview


    【解决方案1】:

    您需要设置自己的“Cookie Jar”。

    1. 使用QNetworkAccessManager::setCookieJar
    2. 扩展QNetworkCookieJar - 因为默认情况下浏览器关闭时它不会保留cookie:

    一旦QNetworkCookieJar 对象是 删除,它持有的所有 cookie 将 也被丢弃。如果你想保存 cookie,你应该从 这个类并实现保存到 磁盘到您自己的存储格式。 (来自QNetworkCookieJar documentation。)

    您可以通过推送到每个QNetworkCookieJar::setCookiesFromUrl 上的永久存储来执行此操作(最安全但最慢),或者仅在浏览器窗口关闭时(总体速度更快但安全性较低,就像您异常退出时不会保存 cookie jar) .

    注意some cookies 不应该被持久化,您可以使用QNetworkCookie::isSessionCookie 来确定这一点。

    【讨论】:

    • 我相信你的意思是:QNetworkCookieJar::setCookiesFromUrl 我现在会检查这个。
    • 你能用代码解释一下吗,我无法存储cookies
    【解决方案2】:

    有一个官方的 Qt Demo,叫做“Browser”。它实现了一个 CookieJar 类,该类支持使用 QSettings 堆栈将 cookie 保存和加载到 .ini 文件。

    【讨论】:

      【解决方案3】:

      一旦 cookie(s) 在 NAM (NetworkAccessManager) 中注册,设置 webview 以使用它:

      myWebView->page()->setNetworkAccessManager(myNAM);

      【讨论】:

      • 考虑改进格式并有点描述性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多