У меня есть мобильное веб-приложение с экраном входа. После входа в систему пользователь переходит к главному экрану приложения. Так как у меня есть кнопки возврата для всего приложения, на главном экране появляется кнопка «Назад»; однако нажатие «Назад» теперь вернет пользователя на страницу входа (что мне не нужно). В то же время на главном экране должна быть кнопка «Назад», так как пользователь может перейти на главный экран с другого экрана в приложении и, возможно, захочет вернуться.
Так что в принципе есть ли какой-либо простой способ отключить кнопку «Назад», если он перейдет на экран входа в систему, но не если он пойдет куда-то еще?
Другая стратегия, которую вы могли бы подумать, - это иметь страницу входа в систему, добавляющую параметр к строке запроса на домашней странице, указывающую, что ее нужно отключить.
http://myapp.com/page.html?backDisable=true
Внутри вашей страницы простой вызов javascript мог определить, был ли передан этот параметр, и если так отключить кнопку «Назад». Ниже приведен пример с помощью плагина парсер URL .
if ($.url().param('backDisable') === 'true') {
$('#backButton')[0].disabled = true;
}
Как настроить массив посещенных страниц и проверить его, чтобы увидеть, была ли последняя страница страницей входа в систему:
//setup array of page views
var page_views = [];
//add event handler for `pageshow` event
$('[data-role="page"]').live('pageshow', function () {
//add current page to page_views array
page_views.push(this.id);
var page_views_length = page_views.length;
//check if the current page is the homescreen and if the last page was the login page
if (this.id == 'homescreen_id' && page_views_length > 1 && page_views[(page_views_length - 2)] == 'login_id') {//this assumes your login page has the id of `login_id` and your homescreen page has the id of `homescreen_id`
//run code to hide the back button
}
});
Добавьте данные-ajax = "false" в вашу регистрационную форму. Я предполагаю, что ваша форма входа и домашний экран существуют в том же домене.
Поэтому, когда вы переходите на example.com, вы видите форму входа в систему (если не вошли в систему) ... когда вы переходите на example.com, вы видите экран приветствия ...
Пример PHP моего индексного макета ... (грязный):
<?php if ($notloggedin) { ?>
<?php } else { ?>
YOUR PAGE
<?php } ?>