Пропустите MainPage и перейдите на второй экран при запуске приложения - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть приложение WP 7.5. У меня есть заставка, а затем идет мой MainPage.xaml, в котором есть заявление об отказе от авторских прав и кнопка «Пуск». Пользователь нажимает кнопку, и она переходит на наш домашний экран (Home.xaml), где пользователь может начать взаимодействие ядра с приложением.

То, что я хочу:

1: Экран авторских прав, т.е. MainPage.xaml, должен появляться только в первый раз, когда пользователь запускает приложение после его установки. При последующем запуске из меню приложения или тайлов я не хочу показывать страницу с авторскими правами.

2: То же самое, что как только пользователь нажимает кнопку «Пуск / Принять» и переходит на Home.xaml, он или она не может вернуться к MainPage.xaml, нажав кнопку «назад», но вместо этого нажав назад с главного экрана, выйти из приложения.

Что я сделал до сих пор:

1: Для OnNavigate в MainPage.xaml, чтобы проверить ключ ApplicationSetting, showCopyright. Если это не найдено или правда, я ничего не делаю. Если это ложь, то я использую NavigationService.Navigate к моему Home.xaml.

2: После нажатия кнопки «Пуск / Принять» для ключа ApplicationSettings было установлено значение false.

Проблема с вышеуказанным подходом:

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

Вопросы:

1: Правильный ли подход выше или есть лучший подход?

2: Если я нахожусь в правильном направлении, как мне заставить приложение выйти из кнопки возврата, когда я нахожусь на Home.xaml?

Спасибо, какие-нибудь указатели, пожалуйста?

Редактировать: Ради записей - я нашел хорошее объяснение здесь о явном выходе из приложения Windows Phone. Начиная с WP7.1 / 7.5, встроенного способа явного выхода из приложения Silverlight WP не существует.

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Вы можете удалить Backentry сервиса Navigation на новой странице (Home.xaml) при нажатии клавиши «Назад», которая прерывает бесконечный цикл.

Пожалуйста, добавьте следующий код в Home.xaml.cs и попробуйте

//this works only in 7.1 SDK
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
        {
            try
            {
                if (NavigationService.CanGoBack)
                    NavigationService.RemoveBackEntry();
                base.OnBackKeyPress(e);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception = " + ex.Message);
            }
        }
0 голосов
/ 07 декабря 2011

Взгляните на этот пост, он показывает, как добавить страницу EULA / Disclaimer и обладает необходимой вам функциональностью:

http://bjorn.kuiper.nu/2011/09/09/wp7eula/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...