2013-05-28 3 views
0

У меня есть следующий сценарий для PhoneGap мобильного приложения:Манипулирование HTML5 историю приложений

  1. App открывает и отображает index.html
  2. входа пользователя в системе и перенаправляется на home.html
  3. пользователя может перейдите в news.html
  4. Я хочу обработать кнопку возврата в home.html таким образом, что если предыдущая страница (после того, как вы вернетесь в историю), была news.html, я хочу, чтобы браузер вернулся в истории, используя navigator.app.backHistory();. Но если предыдущая страница является index.html, я хочу, чтобы закрыть приложение, используя navigator.app.exitApp();

Моя точка не, после входа в систему, пользователь должен никогда не сможет приземлиться на index.html снова.

+0

Это похоже на ошибочное удобство использования - вся цель истории состоит в том, чтобы иметь возможность находить страницы, которые вы ранее посещали, вы делаете что-то не так, если вы создаете сценарий, чтобы игнорировать это. Как ваше приложение требует такого поведения? – CodeMoose

+0

Какие серверные скрипты вы используете? Возможно, у вас может быть ваш index.php либо служить странице входа или домашней странице в зависимости от состояния сеанса? – CodeMoose

+0

это HTML-страница, без кода на стороне сервера. Но вы не хотите, чтобы пользователь показывал страницу входа в систему после входа в систему –

ответ

2

Вместо того, чтобы сделать это, выполните следующие действия:

  1. App открывает и отображает index.html
  2. журналы пользователей в систему и перенаправляется home.html используя History API заменить текущее состояние страница с «home.html» с помощью history.replaceState()
  3. Теперь пользователь «никогда не был» на index.html в первую очередь

Подробнее о manipulating the browser history. Это должно работать с Phonegap.

+0

replaceState был тем, что я искал! он работает, это код: 'history.replaceState ({page: this.href}, '', 'home.html');' 'document.location = 'home.html';' –