c++ qt cookies webkit qwebview

c++ - Qt WebKit y Cookies Permanentes



qwebview (3)

Hay una demostración oficial de Qt, llamada " Browser ". Implementa una clase CookieJar, que admite guardar y cargar cookies en un archivo .ini, utilizando la pila QSettings.

Tengo una ventana principal, en ella, tengo un solo QWebView. Quiero que las cookies de un determinado sitio web (www.kdkdkkd.com por ejemplo) sean permanentes, por lo que cada vez que un usuario cierra y vuelve a abrir el navegador, no necesita volver a iniciar sesión.

Gracias,


Necesitas configurar tu propio "Cookie Jar".

  1. Utilice QNetworkAccessManager::setCookieJar .
  2. Extienda QNetworkCookieJar , ya que no conserva las cookies de forma predeterminada cuando se cierra el navegador:

Una vez que se QNetworkCookieJar objeto QNetworkCookieJar , todas las cookies que contenía también se descartarán. Si desea guardar las cookies, debe derivar de esta clase e implementar el almacenamiento en disco en su propio formato de almacenamiento. (De la documentación de QNetworkCookieJar ).

Puede hacer esto presionando para obtener un almacenamiento permanente en cada QNetworkCookieJar::setCookiesFromUrl (el más seguro pero el más lento) o solo cuando la ventana del navegador está cerrada (más rápido en general pero menos seguro, como si saliera de forma anormal, no se guardará el QNetworkCookieJar::setCookiesFromUrl cookies).

Tenga en cuenta que algunas cookies no deben persistir, puede usar QNetworkCookie::isSessionCookie para determinar esto.


Una vez que las cookies se registran en el NAM (NetworkAccessManager), configure la vista web para usarla:

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