2015-10-27 7 views
1

Мне нужно сохранить историю навигации приложения пользователя в локальном хранилище и восстановить его после того, как пользователь выключит приложение или перезагрузит его устройство.

Я создаю ионное приложение, в котором «волшебники» используют примерно 10 форм. Я сохраняю состояние данных в localStorage при каждом изменении вместе с последней завершенной страницей. Таким образом, я могу вернуть пользователя в нужную форму со всеми сохраненными данными, если они закрывают приложение или перезапускают телефон.

Проблема в том, что когда это происходит, история теряется. Я вижу, что я могу просмотреть $ ionicHistory, но как мне его сохранить и восстановить в будущем? Я мог бы сохранить вывод $ ionicHistory.viewHistory() в localStorage, но, похоже, не существует метода, например .setHistory ...

ответ

1

В это время Ionic не поддерживает эту функцию. Но я думаю, что вы можете сохранить последние URL route и form data на localStorage.

Вот моя идея вручную:

  1. Когда пользователь повторно открыть приложение, вы можете открыть всплывающее окно и попросить ваш пользователь, если он хочет вернуться к продолжавшемуся зрению.
  2. Кнопка comfirm должна содержать ссылку href (восстановление из localStorage). Если пользователь нажмет «ОК», приложение автоматически перейдет к этому представлению.
  3. Восстановите form data с localStorage и привяжите его к представлению.
+1

Да, ваша ручная идея похожа на то, что я делаю. Я представляю стартовую страницу, которая запрашивает пользователя, и если они хотят восстановить сохраненную форму, она загружает данные формы из localStorage и отправляет их в свое последнее состояние, используя $ state.go(). Проблема заключается в том, что при этом ** навигационная панель в nav-nav на панели навигации отправляет их обратно на страницу, спрашивая, хотят ли они восстановить сохраненную форму. ** Если они были на странице 6, я хочу, чтобы навигационная система на страницу 5 (с последнего сеанса) после восстановления, а не на последнюю страницу этого «сеанса» (страница с просьбой восстановить или нет). –

+0

Если формы являются линейными, вы можете заменить кнопку «Назад» на заголовок кнопки в предыдущем состоянии. –

+0

Вы можете сохранить всю историю навигации в массив вложенного объекта и поместить в него идентификатор. Затем проверьте событие кнопки «Назад» и выполните некоторый процесс, чтобы проверить текущий идентификатор со следующим/предыдущим идентификатором и загрузить это представление. –