我们用以下代码打开网站
- var
- Chromium: TChromium;
- begin
- try
- Chromium := TChromium.Create(nil);
- Chromium.SetParentComponent(Form1);
- Chromium.Align := alClient;
- chromium.Browser.MainFrame.LoadUrl('www.');
- FreeAndNil(Chromium)
- end;
如何删除dcef3的cookie和缓存?请看以下代码
- type
- CefTask = class(TCefTaskOwn)
- procedure Execute; override;
- public
- var url,cookieName: ustring;
- constructor create; virtual;
- end;
- constructor CefTask.create;
- begin
- inherited create;
- url := '';
- cookieName := '';
- end;
- procedure CefTask.Execute;
- var CookieManager: ICefCookieManager;
- begin
- CookieManager := TCefCookieManagerRef.Global;
- CookieManager.DeleteCookies(url,cookieName);
- end;
- procedure c_WB_ClearCookies;
- var Task: CefTask;
- begin
- Task := CefTask.Create;
- CefPostTask(TID_IO, Task);
- end;
- // c_WB_Clear_url_Cookies('http://google.com','cookie_name');
- procedure c_WB_Clear_url_Cookies(c_url,c_cookieName: ustring);
- var Task: CefTask;
- begin
- Task := CefTask.Create;
- Task.url := c_url;
- Task.cookieName := c_cookieName;
- CefPostTask(TID_IO, Task);
- end;
整理自网站 https:///questions/12269587/how-do-i-clear-the-cache-and-cookies-for-an-embedded-chromium-browser
取得cookie并显示,如果需要删除cookie,把deleteCookie:= False改为deleteCookie:= True
- function VisitCookie (
- const name, value, domain, path: ustring; secure, httponly, hasExpires: Boolean;
- const creation, lastAccess, expires: TDateTime; count, total: Integer;
- out deleteCookie: Boolean): Boolean;
- begin
- deleteCookie:= False;
- MainForm.Memo1.Lines. Add (' cookie ' +inttostr (count) + ' / ' + inttostr (total));
- MainForm.Memo1.Lines. Add (' name ' +name);
- MainForm.Memo1.Lines. Add (' value ' +value);
- MainForm.Memo1.Lines. Add (' domain ' +domain);
- MainForm.Memo1.Lines. Add (' path ' +path);
- MainForm.Memo1.Lines. Add (' secure ' +BoolToStr (secure));
- MainForm.Memo1.Lines. Add (' httponly ' +BoolToStr (httponly));
- MainForm.Memo1.Lines. Add (' hasExpires ' +BoolToStr (hasExpires));
- MainForm.Memo1.Lines. Add (' creation ' +DateToStr (creation));
- MainForm.Memo1.Lines. Add (' lastAccess ' +DateToStr (lastAccess));
- MainForm.Memo1.Lines. Add (' expires ' +DateToStr (expires));
- MainForm.Memo1.Lines. Add ('--------------- ');
- Result:= True;
- end;
- procedure TMainForm.btn2Click(Sender: TObject);
- var CookieManager: ICefCookieManager;
- begin
- CookieManager:= TCefCookieManagerRef.Global(nil);
- CookieManager.VisitAllCookiesProc (VisitCookie);
- end;
- //这样写,我在delphi xe8中编译不过
- procedure TMainForm.Button1Click(Sender: TObject);
- var
- CookieManager: ICefCookieManager;
- begin
- CookieManager := TCefCookieManagerRef.Global(nil);
- CookieManager.VisitAllCookiesProc(
- function(const name, value, domain, path: ustring; secure, httponly,
- hasExpires: Boolean; const creation, lastAccess, expires: TDateTime;
- count, total: Integer; out deleteCookie: Boolean): Boolean
- begin
- deleteCookie := True;
- ShowMessage('A cookie from domain ' + domain + ' will be unmercifully ' +
- 'deleted!');
- end
- );
- end;
为网址设置单独的cookie文件
- CookieManager: ICefCookieManager;
- FormCreate:
- begin
- CookiesPath := ExtractFilePath(Application.ExeName) + 'cookies/bnwin';
- CookieManager := TCefCookieManagerRef.Global(nil);
- CookieManager.SetStoragePath(CookiesPath, True, nil);
- Chromium1.Load('');
- end;
- FormClose:
- begin
- CookieManager.FlushStore(nil);
- end
为指定的网站设置cookie
- var Fsuccess: Boolean;
- procedure SetCookieR(success: Boolean);
- begin
- Fsuccess := success;
- end;
- procedure TMainForm.btn1Click(Sender: TObject);
- var CookieManager: ICefCookieManager;
- begin
- CookieManager := TCefCookieManagerRef.Global(nil);
- CookieManager.SetCookieProc('http://', 'TEST', 'supertest', '.', '/', False,False, True, now, now, StrToDateTime('2020-12-30'),SetCookieR);
- end;