java - 浏览器字段 Cookie 删除

标签 java javascript blackberry java-me

我正在使用 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/

相关文章:

java - 调试时收到 net_rim_os not found 警告

java - "The requested resource does not support http method ' GET '"- 但我 'm not using C# or asp.net, I' 是发出请求的人

c# - Java 等价于带有 @ 的 C# 逐字字符串

java - 多模块项目构建期间模块之间的 Maven 依赖关系解析

javascript - 使用带 typescript 的 Mongoose 创建自定义验证时出错

BlackBerry - 当 UI 应用程序未打开时,如何在后台线程中访问数据库(或创建 HTTP 连接)

java - 是否可以使用 Scanner、PrintWriter 处理 arrayList

javascript - 如何让一个按钮改变一个<h2>标签

javascript - 为数组中的每个元素执行ajax

java - 检测何时按下 BlackBerry 轨迹球/键盘?