void CBrowserFrame::SetCookie() { CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(); CefCookie cookie; CefString(&cookie.name).FromASCII("Venus_UserInfo"); CefString(&cookie.value).FromASCII(g_meta.cookie); CefString(&cookie.domain).FromASCII("venus.sogou-inc.com"); CefString(&cookie.path).FromASCII("/"); cookie.has_expires = true; cookie.expires.year = 2200; cookie.expires.month = 4; cookie.expires.day_of_week = 5; cookie.expires.day_of_month = 11; CefPostTask(TID_IO, NewCefRunnableMethod(manager.get(), &CefCookieManager::SetCookie, CefString("http://venus.sogou-inc.com"), cookie)); }
就是這段代碼, 關鍵在於最后一句, 這里是開啟了一個新的IO thread, 設置cookie一定要在io線程里面做.為什么呢? 我目前不能答復你, 隨着我們對CEF內核的深入, 相信會水落石出.
使用情景, 比如, 想要直接登入一個網站, 可以通過設置cookie實現.