그래서 이건 좀 늦었지만 여기에 내가 똑같은 문제에 직면했을 때 내 앱에서 한 일이 있습니다. 첫째
약간의 배경 : 탐색 템플릿 작동
방법은, 그것은 default.html을 페이지에 정의 된 PageControlNavigator 제어를 필요에 의존합니다.
args.setPromise(WinJS.UI.processAll().then(function() {
if (nav.location) {
nav.history.current.initialPlaceholder = true;
return nav.navigate(nav.location, nav.state);
} else {
return nav.navigate(Application.navigator.home);
}
}));
: 컨트롤 이후
이 응용 프로그램을로드하면 '홈'페이지를 정의하고 시작 화면을 제거, 그것은 default.js 파일에이 코드를 다음 홈 페이지 또는 마지막 URL로 이동 Windows 스토어 앱 계약에서는 앱을 5 초 내에로드해야하며 (또는 5 초 내에 콘텐츠 표시) 스플래시 화면은 모든 데이터를 비동기 적으로로드하거나로드하기 전에로드하기 전에로드 할 때까지 기다리지 않아야합니다. 홈 페이지, o 필요한 모든 것을로드 할 수있는 앱 시간을 제공하기 위해 스플래시 화면을 확장해야합니다.
그래서 내가 해낸 방법과 그것이 올바른 방법인지는 모르겠지만 나를 위해 일하고있다. 데이터가로드되었는지를 확인하는 함수를 만드는 것이다. 스플래시 화면을 제거하고 홈 화면으로 이동합니다.
function countDown() {
if (Data.isReady > 0) {
ExtendedSplash.remove();
return nav.navigate("/pages/home/home.html");
}
else {
setTimeout(countDown, 5000);
}
}
그리고 당신은 템플릿에서이 약속에 나는이 그것을 변경 :
// Use setPromise to indicate to the system that the splash screen must not be torn down
// until after processAll and navigate complete asynchronously.
args.setPromise(WinJS.UI.processAll().then(function() {
if (nav.location) {
nav.history.current.initialPlaceholder = true;
return nav.navigate(nav.location, nav.state);
}
}));
이 방법은 앱이로드 될 때, 그것은 이동하는 위치를 가지고 있지 않으며, countDown 함수는 데이터가로드되면 홈 페이지로 리디렉션하는 기능을 담당합니다.
"올바른"솔루션이라면 다시는 아니지만 단일 페이지 탐색 컨트롤을 잃지 않고 모든 것이 매력처럼 작동합니다.
희망이 있습니다.