2011-03-23 8 views
16

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

Gracias,

Respuesta

26

Es necesario que ajuste su propio "Cookie Jar".

  1. Use QNetworkAccessManager::setCookieJar.
  2. Extender QNetworkCookieJar - ya que no persisten las cookies de forma predeterminada cuando el navegador se cierra:

vez que el objeto es QNetworkCookieJar eliminado, todas las cookies que poseía serán descartados también. Si desea guardar las cookies, debe derivar de esta clase e implementar el guardado en el disco en su propio formato de almacenamiento. (De QNetworkCookieJar documentation.)

Esto se puede hacer ya sea por empujar a un almacenamiento permanente en cada QNetworkCookieJar::setCookiesFromUrl (más seguro pero más lento) o sólo cuando se cierra la ventana del navegador (general más rápido pero menos seguro que si sale de la galleta de forma anormal jar no se guardará).

Tenga en cuenta que se supone que some cookies persisten, puede usar QNetworkCookie::isSessionCookie para determinar esto.

+0

Creo que quiso decir: QNetworkCookieJar :: setCookiesFromUrl Voy a comprobar esto ahora. – snoofkin

+0

De hecho, –

+0

corregido puede por favor explicar con el código, no puedo almacenar las cookies – tharunkumar

1

Una vez cookie (s) registrada en el NAM (NetworkAccessManager), establezca la vista web para usarlo:

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

+0

Considere la posibilidad de mejorar el formato y ser un poco descriptivo. – nikhil

4

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

+1

Un enlace sería útil. – freakTheMighty

Cuestiones relacionadas