delphi 表单上的2个Chrome示例使用不同的Cookie

lokaqttq  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(336)

我使用的是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路径?我需要使用两个帐户登录到同一个站点。

iyzzxitl

iyzzxitl1#

previous question看,CEF似乎将cookie位置存储该高速缓存路径中。您可以为每个示例将GlobalCEFApp.cache属性设置为不同的位置。

cgvd09ve

cgvd09ve2#

Cookie位于该高速缓存目录中,如果您希望它们是独立的,则需要创建使用不同缓存目录的浏览器。
创建一个具有不同缓存目录的新请求上下文,并在调用TChromium.CreateBrowser创建第二个浏览器时传递它。
MDIBrowser演示展示了如何在这里创建新的独立浏览器。
阅读演示中的代码注解。CEF要求所有该高速缓存目录必须是GlobalCEFApp.RootCache目录的子目录。
每个进程只能初始化CEF一次。只创建一个GlobalCEFApp示例,然后使用MDI窗体、选项卡、框架等创建所需的所有浏览器。CEF4Delphi演示演示了如何完成所有这些操作。

相关问题