我可以让Qwebkit打开(在选项卡中)多个QwebView或其他东西。 每个人都将拥有自己的cookie,并将开放自己的会话。 我希望能够在一个浏览器中打开多个电子邮件并查看它们
答案 0 :(得分:4)
QWebView不会自行处理Cookie。相反,工作被卸载到每个QNetworkAccessManager的QWebPage传入,虽然我目前不知道QWebView是否为每个QWebView设置了相同的QNeworkAccessManager,或者如果它使用不同的QWebView,后者可能看起来很糟糕接近艰难。
您可以使用QWebPage::networkAccessManager ()来获取负责QWebPage的QNetworkAccessManager和QWebPage::setNetworkAccessManager来设置它。
使用QNetworkAccessManager::cookieJar ()获取处理给定QNetworkAccessManage的Cookie的QNetworkCookieJar句柄。
因此,如果您创建不同的QWebView实例或直接明智地使用QNetworkAccessManager的不同实例,您可以使用不同的cookie会话/ jar创建不同的浏览器视图,并实现您想要的结果。
答案 1 :(得分:1)
我知道这个问题已经超过一年了,但我想我会发布一些代码来设置多个会话。
QWebView webView = new QWebView();
QNetworkCookieJar cookieJar = new QNetworkCookieJar();
QNetworkAccessManager nam = new QNetworkAccessManager();
nam.setCookieJar(cookieJar);
webView.page()->setNetworkAccessManager(nam);
使用此代码,您可以创建多个会话,甚至将此代码包含在自己的类中,只需实例化该类的实例,即可在您的应用程序中拥有多个自包含的Web浏览器会话。