QWebEngineView使用QNetworkAccessManager的QNetworkCookieJar

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tired123/article/details/78718821

软件中使用QNetworkAccessManager登录后,打开网页,想自动登录,用QWebView时,可以这样做:

	QUrl url;
	QWebView *webView = new QWebView();
	QNetworkAccessManager *networkManager = new QNetworkAccessManager();
	QNetworkCookieJar *cookieJar = networkManager->cookieJar();;
	webView->page()->networkAccessManager()->setCookieJar(cookieJar);
	webView->load(url);
	webView->show();

换用QWebEngineView后,原来的接口没有了,经过研究试验,还是可以共享的,核心代码:

	QUrl url;
	QWebEngineView *webView = new QWebEngineView();
	QNetworkAccessManager *networkManager = new QNetworkAccessManager();
	QNetworkCookieJar *cookieJar = networkManager->cookieJar();;
	QList<QNetworkCookie> cookies = cookieJar->cookiesForUrl(strUrl);
	QWebEngineCookieStore *cookieStore = webView->page()->profile()->cookieStore();
	cookieStore->setCookie(cookies.front(), url);
	webView->page()->load(url);
	webView->show();

有待研究:QNetworkCookieJar的cookiesForUrl返回的看起来会是多个QNetworkCookie,而QWebEngineCookieStore的setCookie只接收一个,如有多个该怎么处理? 


展开阅读全文

没有更多推荐了,返回首页