답변

0

그래서 이건 좀 늦었지만 여기에 내가 똑같은 문제에 직면했을 때 내 앱에서 한 일이 있습니다. 첫째

약간의 배경 : 탐색 템플릿 작동

방법은, 그것은 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 함수는 데이터가로드되면 홈 페이지로 리디렉션하는 기능을 담당합니다.

"올바른"솔루션이라면 다시는 아니지만 단일 페이지 탐색 컨트롤을 잃지 않고 모든 것이 매력처럼 작동합니다.

희망이 있습니다.