在一个表单上使用不同cookie的2个Chrome实例



我使用的是cef4。表单上有两个chromium实例,它们都使用相同的设置:

procedure CreateGlobalCEFApp;
var
inicef: Tinifile;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.LogFile := 'debug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO;
GlobalCEFApp.cache := 'cache';
GlobalCEFApp.EnablePrintPreview := True;
path := ExtractFilePath(ParamStr(0));
GlobalCEFApp.DisableFeatures := 'WinUseBrowserSpellChecker';
inicef := Tinifile.Create(path + 'settings.ini');
GlobalCEFApp.UserAgent := Pchar(inicef.ReadString('Chrome', 'UserAgent', ''));
inicef.free;
end;

如何让每个实例使用不同的cookie路径?我需要用两个账号登录同一个网站。

从上一个问题来看,CEF似乎将cookie位置存储在缓存路径中。您可以将GlobalCEFApp.cache属性设置为每个实例的不同位置。

cookie位于缓存目录中,如果您希望它们独立,则需要使用不同的缓存目录创建浏览器。

用不同的缓存目录创建一个新的请求上下文,并在调用TChromium时传递它。创建第二个浏览器。

MDIBrowser演示演示了如何在这里创建新的独立浏览器。

阅读演示中的代码注释。CEF要求所有缓存目录必须是GlobalCEFApp的子目录。RootCache目录。

CEF在每个进程中只能初始化一次。只创建一个GlobalCEFApp实例,然后使用MDI表单、选项卡、框架等创建所需的所有浏览器。有CEF4Delphi演示如何做到这一切。

最新更新