2016-01-05 4 views
1

При использовании DCX3 TChromium, как я могу сохранить сессию в живых?TChromium: Как сохранить сессию в рабочем состоянии

Например, если я зашел на сайт и зарегистрировался на нем, когда я закрою свое приложение и снова открою его, мне нужно снова войти в систему. Я хочу сохранить сессию в живых, точно так же, как если бы я использовал Google Chrome.

Я попытался добавить 'CefLib' в мое приложение 'uses' и установить 'CefCache', как и код ниже, но хотя я могу видеть файлы, хранящиеся в папке 'cookies', кажется, не имеет никакого значения в сохранении сессия живая:

program Project1; 

uses 
    Forms, 
    Unit1 in 'Unit1.pas' {Form1}, 
    ceflib in 'C:\app\dcef\src\ceflib.pas'; 

{$R *.res} 

begin 
    CefCache := 'cookies'; 
    Application.Initialize; 
    Application.MainFormOnTaskbar := True; 
    Application.CreateForm(TForm1, Form1); 
    Application.Run; 
end. 

Заранее спасибо.

+0

Вы видите, что куки были сохранены TChromium? См. Http://stackoverflow.com/a/23723741/80901 для кода для установки пути хранения файлов cookie – mjn

+0

@mjn Решение по этой ссылке, похоже, использует устаревшую версию DCEF, код не компилируется. – delphirules

+0

Хорошо, что бы то ни было ... Если браузер не хранит cookie id сеанса, возобновление невозможно, поэтому вопрос остается открытым: вы видите, что файлы cookie сохраняются? – mjn

ответ

2

Парень из официального форума DCEF3 предоставил нижеприведенное решение, протестирован и одобрен!

CookieManager: ICefCookieManager; 

FormCreate: 
begin 
    CookiesPath := ExtractFilePath(Application.ExeName) + 'cookies'; 
    CookieManager := TCefCookieManagerRef.Global(nil); 
    CookieManager.SetStoragePath(CookiesPath, True, nil); 
end; 

FormClose: 
begin 
    CookieManager.FlushStore(nil); 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^