【发布时间】:2012-04-13 03:52:04
【问题描述】:
我的 Flex 应用程序使用本地 SharedObjects。已经发生过 Flash cookie 损坏的事件,例如,由于插件崩溃。在这种情况下 SharedObjects.getLocal 会抛出异常 (#2006)。
我的客户希望应用程序能够正常恢复:如果 cookie 损坏,我应该将其替换为空的。
问题是,如果 SharedObject.getLocal 不返回 SharedObject 的实例,我就没有什么可以调用 clear() 了。
如何删除或替换此类 cookie?
非常感谢!
编辑:
没有太多代码可以显示——我访问本地 cookie,我可以轻松捕获异常。但是,一旦我发现异常,如何在同一位置创建一个新的共享对象?
try {
localStorage = SharedObject.getLocal("heywoodsApp");
} catch (err:Error) {
// what do I do here?
}
使用编辑器破坏 Flash cookie 的二进制内容很容易重现该错误。
【问题讨论】:
-
+1 表示问题;但我不知道解决方案是什么。你的应用程序在做什么插件崩溃是司空见惯的?可以分享代码吗?你能分享完整的例外吗?我想知道您是否可以使用 uncaughtException 事件来创建一个全新的 SharedObject?
-
该应用程序是监控和分析公司内部使用的业务数据的前端。崩溃并不常见,但有报告称 Windows 崩溃后 cookie 损坏,并且由于用户在技术上不够熟练,无法清理他们的 Flash cookie,因此客户端已提出功能请求(即我如果我这样做,可以获得更多的钱)如果事件再次发生,该应用程序会为他们做这件事。我将代码放在原始评论中。
-
@ThomasHeywood 您是否以某种方式解决了这个问题?我在这里没有看到任何好的答案:/
-
不,我们让它滑动并记录问题。
标签: apache-flex recovery corrupt shared-objects