Кнопка «Домой» в приложении для перехода на главную страницу разрешена? - PullRequest
3 голосов
/ 15 июня 2011

Мне было интересно узнать о реализации кнопки «In-App Home», которая возвращает вас с любой страницы на главную страницу. Насколько я помню, это не разрешено Руководством по разработке WP7. Но я не могу найти какую-либо письменную информацию об этом.

Кто-нибудь знает, где это написано?

Ответы [ 4 ]

2 голосов
/ 22 июля 2013

Кнопка «Домой» обычно не рекомендуется, Источник MSDN :

Размещение кнопки «Домой» в пользовательском интерфейсе отличается от модели навигации Windows Phone.

Реализация кнопки «Домой» в вашем приложении может также вызвать вторую проблему, которая имеет гораздо более серьезные последствия для вашего приложения: это может непреднамеренно создать сценарий, в котором пользователь может застрять в бесконечности (или почтибесконечный), когда он или она использует и кнопку «Домой», и аппаратную кнопку «Назад» для навигации.Этот цикл может ухудшиться, если они используют кнопку «Назад» для перемещения из одного приложения обратно в ваше приложение просто для перехода в другое.Убедитесь, что эти проблемы не влияют на ваше приложение.

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

Но будут приложения, которые не могут иметь поверхностную навигацию и требуют кнопку «Домой», например, Google Drive или браузер папок Dropbox - после углубления впользователь структуры папок захочет быстро перейти на главную страницу.Рекомендации, Источник MSDN :

Если ваше приложение позволяет пользователям закреплять страницы, подумайте, требуется ли кнопка «Домой», чтобы позволить пользователю быстро вернуться в корень приложения. Кнопка «Домой» переходит на домашнюю страницу приложения, а затем очищает весь стек навигации назад .

Например, если закрепленная страница является корзиной покупок, пользователь может захотеть завершить покупки в корзине покупок, а затем снова начать покупки.В этом случае предоставление пользователю кнопки «Домой» улучшает взаимодействие с пользователем , уменьшая количество нажатий, необходимых для возврата к началу приложения.

На главной странице:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    while (NavigationService.BackStack.Any())
        NavigationService.RemoveBackEntry();
    base.OnNavigatedTo(e);
}
1 голос
/ 15 июня 2011

Я не думаю, что это запрещено, однако это может привести к появлению петель навигации, которые будут раздражать пользователя, когда он / она пытается выйти из вашего приложения с помощью кнопки «Назад».

Например, представьте себе приложение с 3 страницами, A, B и C. Скажем, страница C содержит кнопку «домой», чтобы вернуться на страницу A напрямую. Таким образом, ваш стек навигации может выглядеть так:

A -> B -> C -> A -> B -> C -> A ....

Для этого требуется много нажатий кнопки «Назад», чтобы вернуть пользователя на стартовую страницу и выйти из приложения. Есть несколько способов избежать этого, самым очевидным из которых, конечно же, является отсутствие кнопки «домой». Но если вы решите, что это необходимо для вашего приложения, вы можете

  • Используйте службу нелинейной навигации для управления круговой навигацией

  • Используйте более наивный метод, в котором вы поддерживаете глобальный флаг, когда пользователь нажимает кнопку «Домой», устанавливает этот флаг и вызывает NavigationService.GoBack(). Переопределите метод OnNavigatedTo на каждой странице, и если этот глобальный флаг установлен, вызывайте NavigationService.GoBack() снова, пока не перейдете на главную страницу.

1 голос
/ 15 июня 2011

Это разрешено, но не рекомендуется.Как правило, для возврата на главную страницу следует полагаться на кнопку «Назад».

Если вы хотите реализовать это поведение, вы должны тщательно протестировать его с реальными пользователями, знакомыми с телефоном.Не лишайте законной силы свой тест UX, имея пользователей, которые не знакомы с телефоном.Ваши настоящие пользователи будут и будут ожидать, что ваше приложение будет следовать соглашениям нативных приложений и почти всех других.

Если вам нужно реализовать это, вы, вероятно, захотите использовать NonLinear Navigation Service для правильного управления поведением кнопки «назад».

0 голосов
/ 15 июня 2011

Я полагаю, что это разрешено, если навигация по кнопке «Назад» возвращается к последней видимой странице.

...