2017-03-17 3 views
0

J'intègre CEF avec mon application MFC (je suis this tutorial) et je ne sais pas comment obtenir la demande de cookies, j'essaie dans la méthode OnBeforeBrowse mais toujours pas de succès, j'ai également essayé dans le OnResourceResponse mais je n'arrive seulement à obtenir des cookies dans la réponse.Comment obtenir des cookies dans CEF + MFC?

Quelques questions pour débutant: Que fait la méthode GetFirstPartyForCookies? J'ai lu la documentation et je n'ai toujours pas compris. Ai-je utilisé le CefCookieManager? Je pensais que je devrais utiliser la méthode VisitAllCookies mais le paramètre visiteur ne peut pas être vide, il me donne un Assertion, je suis en train:

CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL); 
CefRefPtr<CefCookieVisitor> visitor; 

manager->VisitAllCookies(visitor); 

Toute aide ou indice sera apprécié.

Répondre

1

J'ai trouvé cette réponse sur le CEF forum.

Pour récupérer le cookie je dois créer ma propre classe dérivée de CefCookieVisitor puis appelez VisitAllCookies

CefRequestHandler::ReturnValue ClientHandler::OnBeforeResourceLoad(CefRefPtr<CefBrowser> browser, 
    CefRefPtr<CefFrame> frame, 
    CefRefPtr<CefRequest> request, 
    CefRefPtr<CefRequestCallback> callback) 
{ 
    auto strURL = request->GetURL(); 

    CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL); 
    CefRefPtr<MyCookieVisitor> visitor = new MyCookieVisitor(); 
    manager->VisitAllCookies(visitor); 

    return RV_CONTINUE; 
}