我正在尝试在Flex 4.5移动项目中使用SharedObject。 我使用的SDK是4.5.1,AIR版本是2.6.0。
我正在尝试使用以下代码在本地存储应用程序的用户凭据:
var so:SharedObject = SharedObject.getLocal("cred");
so.data.user = txtUser.text;
so.data.password = txtPass.text;
so.data.rememberMe = isLoginRemembered.selected;
var result:String = so.flush();
之后,当应用程序再次加载时, 我想使用以前保存的SharedObject凭据,因此用户不需要每次都输入凭据。
var so:SharedObject = SharedObject.getLocal("cred");
txtUser.text = so.data.user;
txtPass.text = so.data.password;
isLoginRemembered.selected = so.data.rememberMe;
但这似乎不起作用,用户&密码从未保存过,因此为空。 如果我在我的文件系统(Mac OSX)上寻找cred.sol文件,我甚至找不到该文件! 这一切都在“结果”字符串中显示为“刷新”。
我正在Mac上开发此应用,并希望部署到iOS。
有什么建议吗?
答案 0 :(得分:5)
我解决了这个问题!
我正在使用Flash Builder 4.5开发此应用程序,并为iPhone4进行了调试/运行配置 现在,当您指定运行/调试配置时,可以选中“每次启动时清除应用程序数据”复选框。此复选框需要是UNCHECKED,因为这将在每次启动应用程序时清除SharedObject!
要在Flash Builder 4.5中访问此配置屏幕,请单击“运行/调试”按钮旁边的小箭头,然后单击“运行/调试配置”。导航到指定的配置,取消选中该复选框!
瞧!享受您的iOS SharedObject真棒!
答案 1 :(得分:0)
首先,如果您要存储密码,则应使用加密。我不确定您的LSO问题,但我认为本地加密存储可能是一个答案,我认为iOS和AIR 3.0支持它。您还可以使用加密的SQL Lite数据库。这个答案有一些信息:EncryptedLocalStore not supported
根据文档,除了电视外,所有内容都支持此功能。因此,所有移动设备现在应该具有EncryptedLocalStore,但您需要切换到Air3。