如何清除AIR缓存以进行Facebook注销?

时间:2012-06-07 07:49:25

标签: actionscript-3 flash facebook-graph-api air browser-cache

我正在开发一个应该在桌面和移动平台上运行的AIR应用程序。 对于大多数Facebook功能,我使用官方GraphAPI for Flash,版本1.8.1。

要使用该应用程序,用户必须登录Facebook,这可以通过首先调用FacebookMobile.init()轻松实现,如果它报告用户未登录,则以这样的方式登录:

var webView :StageWebView = new StageWebView();
webView.stage = stage;
webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
FacebookMobile.login(handleLoginResult, stage, new Array(), webView);

所有这些都很有效,但是注销不能按预期工作。调用

FacebookMobile.logout(handleLogout);
似乎

确实从Facebook注销用户,并且handleLogout始终作为第一个参数传递 true 。在注销之后,当调用FacebookMobile.init()时,它也会正确地报告用户没有登录。所以我再次从上面调用login()方法。

然后,WebView打开,但立即自动关闭,自动登录刚刚注销的用户,而不显示任何类型的Facebook登录屏幕。但我希望能够通过输入电子邮件和密码来登录另一个用户。

可能我应该提一下,当应用程序启动时会发生注销。用户无法自行注销,应用程序在启动时会这样做,因此用户应该每次都强制登录。是的,这有一个原因;)

我确定这是某种缓存问题,但如何使用Flash / AIR解决?

3 个答案:

答案 0 :(得分:1)

有点迟到但总比没有好吗?我在尝试使用OAUTH api之前已经看过这个问题...

在寻找单独的问题时找到了潜在的解决方案,但是关于缓存/ cookie ......

这篇文章解释了你需要做什么: http://cookbooks.adobe.com/post_Cannot_logout_from_Facebook_on_Android_devices-19254.html

基本上它不是一个非常漂亮的解决方案,但它的作用是你手动删除缓存发生的文件夹。

希望这有帮助。

答案 1 :(得分:0)

实施" reallyLogout"从这个答案中得到的类似问题对我有用: https://stackoverflow.com/a/8199505/952779

答案 2 :(得分:0)

清除Internet Explorer缓存& cookies,..它会从StageWebView facebook登录

登出

更新:还可以更改描述符xml文件中的应用ID