我正在创建名为"webengine“的简易QT应用程序。
pWebView = new QWebEngineView(this);
pWebView->load(QUrl("http://technoz.ru"));
pWebView->show();
// On application close
delete pWebView;应用程序为存储和cookie创建一个名为"webengine“的标准文件夹。域设置一个24小时的cookie。但是在关闭并再次打开应用程序之后,cookie丢失了。在文件夹"webengine“中创建的Сookies文件-空(我在sqlbrowser中检查它)。但是,如果你停留在30-40秒,饼干就会被保存。
为什么没有立即保存cookie,以及如何立即保存?
在测试期间,QT( are )会在30秒(常量)内自动通过浏览器存储cookie,如果运行时间较短,则不会保存cookies。这次能改变吗?我试着使用标志--剖析--刷新=5,但是没有用。
假设浏览器在关闭浏览器时必须保留存储(Cookie),但它不保存,那么它是否是bug QT?
我可以从源代码构建QT,а并在源代码中找到和更改这个设置,但是,也许这个问题还有其他的解决方案……
感谢所有的人,发现了它的缺陷: https://bugreports.qt.io/browse/QTBUG-52121
发布于 2016-07-13 21:54:42
您必须编辑QWebEngineProfile的cookie存储策略。如果使用的是默认配置文件,请使用:
QWebEngineProfile::defaultProfile()->setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies)会话和持久cookie都保存到磁盘并从磁盘中还原。您可以选择要保存cookie和缓存数据的文件夹:
QWebEngineProfile* defaultProfile = QWebEngineProfile::defaultProfile();
defaultProfile->setCachePath("your folder");
defaultProfile->setPersistentStoragePath("your folder"); https://stackoverflow.com/questions/37336396
复制相似问题