我使用的是CEF 4。表单上有两个铬元素的示例,它们都使用相同的设置:
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路径?我需要使用两个帐户登录到同一个站点。
2条答案
按热度按时间iyzzxitl1#
从previous question看,CEF似乎将cookie位置存储该高速缓存路径中。您可以为每个示例将
GlobalCEFApp.cache
属性设置为不同的位置。cgvd09ve2#
Cookie位于该高速缓存目录中,如果您希望它们是独立的,则需要创建使用不同缓存目录的浏览器。
创建一个具有不同缓存目录的新请求上下文,并在调用TChromium.CreateBrowser创建第二个浏览器时传递它。
MDIBrowser演示展示了如何在这里创建新的独立浏览器。
阅读演示中的代码注解。CEF要求所有该高速缓存目录必须是GlobalCEFApp.RootCache目录的子目录。
每个进程只能初始化CEF一次。只创建一个GlobalCEFApp示例,然后使用MDI窗体、选项卡、框架等创建所需的所有浏览器。CEF4Delphi演示演示了如何完成所有这些操作。