首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BrowserField Cookie删除

BrowserField Cookie删除
EN

Stack Overflow用户
提问于 2011-01-26 23:07:34
回答 3查看 1.4K关注 0票数 2

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

无法执行脚本-脚本引擎的

不存在。

我不认为这是javascript没有像在默认情况下从BrowserFieldConfig类中被初始化一样被初始化的结果。不过,我不确定是否正确地格式化了我的javascript。这是我正在使用的代码:

代码语言: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);
    }
};

这可能是一个线程问题,但我不知道如何解决这个问题。所以任何帮助都是非常感谢的。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2011-01-27 19:00:45

到目前为止,我还没有使用BrowserFieldCookieManager接口,但是您是否尝试过调用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

票数 0
EN

Stack Overflow用户

发布于 2011-05-23 01:38:30

嗯,我无法帮助您使用BrowserFieldCookieManager,但是这里有一个非常有用的网站,它帮助我启动并提供了我用于cookie管理的脚本(如果没有其他的话,它应该让您了解BrowserFieldCookieManager在幕后做什么,以及如何让它做您想做的事情)。

http://www.quirksmode.org/js/cookies.html

特别是看看它是如何删除cookie的,方法是用立即过期的空cookie来替换它们。

票数 0
EN

Stack Overflow用户

发布于 2013-05-24 21:27:37

另一种完全不使用cookie的方法(如果这是您的意图)是在BrowserFieldConfig中使用这个属性。

代码语言:javascript
复制
BrowserFieldConfig config = new BrowserFieldConfig();  
config.setProperty(BrowserFieldConfig.ENABLE_COOKIES, Boolean.FALSE);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4811175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档