Мобильный проект Flex 4.5 iOS: проблемы с SharedObject - PullRequest
3 голосов
/ 27 октября 2011

Я пытаюсь использовать SharedObject в мобильном проекте Flex 4.5. Используемый мной 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;

Но, похоже, это не работает, пользователь и пароль никогда не сохранялись и, следовательно, не имеют значения. Если я поищу файл cred.sol в моей файловой системе (Mac OSX), я даже не смогу найти этот файл! Это все, пока в строке «result» написано «flhed».

Я занимаюсь разработкой этого приложения на Mac и хотел бы развернуть его на iOS.

Есть предложения?

Ответы [ 2 ]

5 голосов
/ 28 октября 2011

Я решил проблему!

Я разрабатываю это приложение с помощью Flash Builder 4.5 и выполнил настройку отладки / запуска для iPhone4.
Теперь, когда вы указываете конфигурацию запуска / отладки, вы можете установить флажок «Очистить данные приложения при каждом запуске». Этот флажок должен быть ОТКЛЮЧЕН, потому что он будет очищать ваш SharedObject при каждом запуске приложения!

Чтобы открыть этот экран конфигурации в Flash Builder 4.5, щелкните крошечную стрелку рядом с кнопкой «Выполнить / отладить» и нажмите «Выполнить / отладить конфигурации». Перейдите к указанной конфигурации и снимите флажок!

Вуаля! Наслаждайтесь потрясающей iOS SharedObject!

0 голосов
/ 27 октября 2011

Прежде всего, вы должны использовать шифрование, если вы храните пароли.Я не уверен в вашей проблеме LSO, но я думаю, что Local Encrypted Store может быть ответом, и я думаю, что он поддерживается с iOS и AIR 3.0.Вы также можете использовать зашифрованную базу данных SQL Lite.Этот ответ содержит некоторую информацию об этом: EncryptedLocalStore не поддерживается

РЕДАКТИРОВАТЬ: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/data/EncryptedLocalStore.html

Согласно документации это поддерживается на всех, кроме телевизоров.Поэтому на всех мобильных устройствах теперь должен быть EncryptedLocalStore, но вам нужно переключиться на Air3.

...