提问者:小点点

在Android上访问和/或清除Delphi的FMX TWebBrowser中的cookie


我目前正在使用Delphi在Android上开发一个应用程序,部分认证是使用原生TWebBrowser组件完成的,据我了解,该组件来自android的原生chrome webkit。

我需要在按下“注销”按钮和退出应用程序时清除特定于我的TWebBrowser组件的cookie,但是我发现这很困难,因为TWebBrowser中似乎没有任何程序可以重新模拟任何类型的cookie管理器。虽然我将EnableCach设置为false,但应用程序在退出和重新启动时会记住我的凭据,这对我的用例来说是有问题的…

有没有办法访问或删除德尔福的AndroidTWebBrowser FMX组件创建的cookie?我想过也许导入这个类:https://developer.android.com/reference/android/webkit/CookieManagerJNI桥,但我不确定如何做到这一点,如果可能的话,我想尝试一个本地选项…

P. S:我尝试过运行chrome查询,例如chrome://settings/clearBrowserData,但TWebBrowser似乎无法识别它,但如果有类似的选项,那么我也对它持开放态度。

感谢任何帮助!


共1个答案

匿名用户

您可以尝试清除应用程序中运行的TWebBrowser的所有cookie(在Delphi 11上测试,并受到为Java编写的答案的启发):

TJCookieManager.JavaClass.getInstance.removeAllCookies(nil);
TJCookieManager.JavaClass.getInstance.flush();

相同的答案具有访问某些站点的cookie的代码,给定其URL,在Delphi中等于:

Cookie := TJCookieManager.JavaClass.getInstance.getCookie('siteURL');

其中CookieJString类型的变量。不要忘记将单元Androidapi. JNI.WebKit添加到您的使用子句中。