Сохранение учетных данных в мобильном приложении Android / jQuery - PullRequest
4 голосов
/ 12 января 2012

Мы обертываем мобильное приложение jQuery с элементом управления Webview в Android.В мобильном приложении jQuery есть страница входа.Мы хотели бы позволить пользователю сохранять свои данные для входа.

Хитрость в том, что клиент предпочел бы, чтобы мы не использовали куки для этого.

Решение / проблема № 1:

Мы подумали о возможности создания экрана входа в Android, который вызывает службу аутентификации и сохраняет токен.Затем токен передается в веб-просмотр через строку запроса в свойстве url.Затем мобильное приложение jQuery может извлечь токен из строки запроса и проверить его, позволяя обойти экран входа в мобильное приложение.

Однако проблема в том, что ... что происходит, когда пользователь выходит из системы через мобильное приложение jQuery?Как мобильное приложение может сообщить обертке Android об удалении токена?

Решение № 2, но та же проблема

Тот же экран входа в Android, но вместо того, чтобы передавать его через параметр строки запроса, используйте JavaScript на стороне Android, просматривая WebviewDOM и введите имя пользователя и пароль на экране мобильного входа в систему jQuery.Если этот маркер существует на стороне Android при запуске приложения, просто пропустите экран входа в Android и автоматически введите учетные данные пользователя.

Однако, по-прежнему возникает та же проблема, когда пользователь вручную выходит из системы.

Не думаем ли мы об этом вообще, как надо?

Идеи?

1 Ответ

3 голосов
/ 13 января 2012

Вы можете использовать ваши webviews localalstorage. Вы должны включить его в своем веб-просмотре, используя класс WebViewSettings:

WebSettings settings = webview.getSettings();
settings.setDomStorageEnabled(true);

Теперь вы должны иметь доступ к localStorage с помощью javascript, как и в любом другом браузере, который его поддерживает:

window.localStorage
// Set value
window.localStorage.setItem("username", "XXX");
// getting the value
var username = window.localStorage.getItem("username");

Альтернатива 2: Создайте интерфейс javascript для ваших приложений. Это позволит вам создавать и вызывать функцию javascript, которая запускает код Java в вашем приложении Android. Эта тема описана здесь: http://developer.android.com/guide/webapps/webview.html в разделе «Привязка кода JavaScript к коду Android»

...