gpt4 book ai didi

java - 浏览器字段 Cookie 删除

转载 作者:行者123 更新时间:2023-11-29 09:23:13 24 4
gpt4 key购买 nike

我正在使用 RIM JRE 6 制作黑莓应用程序。第一次创建 BrowserField 时,会创建一个 cookie。在特定时刻(取决于用户输入)必须删除 cookie。为此,我打开了一个 BrowserField,并试图删除存储在 BrowserField 中的 cookie。目前,据我所知,RIM api 中没有提供显式删除 BrowserField cookie 的方法,因此我使用 BrowserField 类中提供的 executeScript 方法执行一些 javascript 来删除 cookie。在运行 requestContent 方法之前,javascript 在 onUiEngineAttached 方法中执行。但这会导致应用程序崩溃并出现 IllegalStateException 和消息:

Unable to execute script - script engine does not exist

我不认为这是因为 javascript 没有被初始化为打开的结果,因为它应该在 BrowserFieldConfig 类中默认打开。我不确定我是否正确地格式化了我的 javascript。这是我正在使用的代码:

protected void onUiEngineAttached(boolean attached)
{
if(attached)
{
// ... Removed unnecessary code
// Retrieve the cookie manager for the embedded browser
BrowserFieldCookieManager cookieManager = _browserField.getCookieManager ();
if (eraseCookie == true)
{
String temp = cookieManager.getCookie ("someSite");
while (temp.indexOf ("testCookie") != -1)
{
_browserField.executeScript("javascript:document.cookie = \"testCookie=; expires=Thu, 01-Jan-70 00:00:01 GMT\"");
}
}
// Requests browser to go to URL with body and header information
_browserField.requestContent(_url, _body.getBytes(), _header);
}
};

这可能是线程问题,但我不确定如何解决。因此,我们将不胜感激。

谢谢。

最佳答案

到目前为止,我还没有使用 BrowserFieldCookieManager 接口(interface),但是您是否尝试过在 cookie 管理器上调用 setCookie( url, null ) 或 setCookie( url, "") 来清除 cookie?我意识到这方面的 API 文档很少。如果这些都不起作用,请尝试将 cookie 替换为已过期的 cookie。

另一种选择是在创建 BrowserField 实例时替换您自己的 cookie 管理器。请参阅 BrowserFieldConfig 的文档:

http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/browser/field2/BrowserFieldConfig.html

关于java - 浏览器字段 Cookie 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com