我正在创建名为";网络引擎";
pWebView = new QWebEngineView(this);
pWebView->load(QUrl("http://technoz.ru"));
pWebView->show();
// On application close
delete pWebView;
该应用程序创建一个名为"的标准文件夹;网络引擎";用于存储和cookie。域设置24小时的cookie。但在关闭并再次打开应用程序后,cookie丢失了。在文件夹"中创建的Сookies文件;网络引擎"-空(我在sqlbrowser中检查它)。但是,如果你在页面上停留30-40秒,cookie就会保存下来。
为什么cookie没有立即保存,以及如何立即保存?
在测试过程中,QT(铬)会在30秒内自动通过浏览器存储cookie(恒定)。如果经过的时间更短,则不会保存cookie。这次有可能改变吗?我试着使用标志--profiling flush=5,但它没有帮助。
考虑到当您关闭浏览器时,浏览器必须保留存储(cookie),但它没有,这是否是QT错误?
我可以从源代码构建QT,并在源代码中找到和更改此设置,我认为,但是,也许这个问题有其他解决方案。。。
感谢所有人,发现了它的错误:https://bugreports.qt.io/browse/QTBUG-52121
您必须编辑QWebEngineProfile的cookie存储策略。如果您使用默认配置文件,请使用:
QWebEngineProfile::defaultProfile()->setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies)
会话cookie和持久cookie都保存到磁盘并从磁盘恢复。您可以选择保存cookie和缓存数据的文件夹:
QWebEngineProfile* defaultProfile = QWebEngineProfile::defaultProfile();
defaultProfile->setCachePath("your folder");
defaultProfile->setPersistentStoragePath("your folder");