0

Скажем, я хочу, чтобы отобразить экран входа в систему, прежде чем в главном экране приложенияWinJs: Как перейти на другую стартовую страницу программно?

Это не работает, и я не понимаю, почему:

default.js

var p = WinJS.UI.processAll().then(function() { 
      WinJS.Navigation.navigate('/pages/login.html'); 
    }); 
+1

Вы прикрепляли обработчики к 'Promise', чтобы узнать, что может быть возвратным значением/ошибкой? – WiredPrairie

+0

Я не знал, что смогу это сделать :) – Alex

ответ

0

WinJS. Navigation.navigate - это всего лишь механизм для увеличения событий навигации. Некоторые другие части кода должны обрабатывать эти события для фактической загрузки страницы. Без такого кода API-интерфейсы WinJS.Navigation ничего не делают сами по себе.

С обычными шаблонами приложений для магазина в Visual Studio есть файл navigator.js, который предоставляет этот шаблонный код и работает со страницами, которые вы определили с помощью WinJS.Pages.define.

Если вы используете navigator.js уже, проверьте, что путь, который вы указываете для навигации, точно соответствует пути, указанному в WinJS.Pages.define. Если есть несоответствие, страница не сможет загрузиться.

Я бы указал вам на документы MSDN при навигации по страницам, но все это перемещается за пределы Windows 10, поэтому ссылки, о которых я знаю, сломаны. Но вы можете сослаться на главу 3 моей бесплатной книги, Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition, для всех деталей.

+0

Спасибо за ответ, я собираюсь проверить navigator.js и пометить ваш ответ как принятый. Я начал с чистого проекта. – Alex

+1

С пустым проектом вы не получите navigator.js автоматически, поэтому, если вы просто добавите вызовы в WinJS.Navigation.navigate, ничего не произойдет. Я рекомендую создать другой проект с помощью шаблона навигации и посмотреть на код, чтобы увидеть, как он включает navigator.js и как он определяет страницы. Опять же, глава 3 в моей книге посвящена всем деталям. –