1

내 앱에서 다른 html로 이동하는 방법을 찾으려고합니다. 나는 window.Location과 WinJS를 시도했다 .Navigation.navigate하지만 아무것도 작동하지 않는다.Windows 저장소 앱에서 다른 html로 이동

+0

앱 패키지에 HTML이 있거나 동적으로 생성/다운로드 되었습니까? 그것은 큰 차이를 만듭니다. –

+0

Visual Studio 프로젝트 폴더에 추가하고 다시 빌드했습니다. 나는 흰 화면을 얻는다. WinJS.Navigation.navigate ("/ app/App2a/app/screens/page.html"); – Query21

+0

해명 해줘서 고마워. 아래 풀러 답변을 참조하십시오. –

답변

1

document.location 및 탐색 기능을 사용할 수 있지만 (window.location이 아닌 document.location이라는 점에 유의하십시오.) 권장되는 방법은 단일 페이지 웹 응용 프로그램처럼 응용 프로그램을 구현하는 것입니다. 즉, default.html/index.html 안의 동 DOM 교체에 의해 "탐색"할 수 있습니다. 즉, 페이지 컨텍스트는 항상 기본 HTML 페이지이므로 "페이지"전체에서 JavaScript 컨텍스트를 유지하고 페이지 안팎으로 내용을 원활하게 탐색 할 수 있습니다. (document.location 및 링크가 검은 색 화면을 통해 전환되고 JS 컨텍스트가 재설정됩니다.)

DOM 대체 방법은 다양하지만 WinJS에 내장 된 메커니즘은 WinJS.UI.Pages입니다. 메커니즘을 탐색하는 가장 좋은 방법은 탐색 템플릿을 사용하여 새 앱 프로젝트를 만드는 것입니다. 이 내용은 간단히 다음과 같습니다.

  • 단일 HTML 페이지 컨텍스트 인 기본 페이지 default.html. 이것은 "home"페이지에 대한 참조로 초기화되는 Application.PageControlNavigator 컨트롤을 포함하는 단일 div를 선언합니다.
  • home/home.html, .js 및 .css가있는 pages 폴더 (이 파일들은 범용 앱 프로젝트의 공유 폴더에 걸쳐 분할됩니다.)
  • 기본적으로 default.html에서로드되는 js 폴더 내의 navigator.js 파일입니다. 이 코드는 WinJS.Navigation.navigate 호출을 수신하고 WinJS.UI.Pages 메커니즘을 사용하여 DOM 대체를 사용하여 다른 페이지를로드하고 탐색하는 코드 조각입니다 (실제로 default.html 내에 있습니다). 구체적으로 default.html 내에서 PageControlNavigator 컨트롤을 찾고 해당 div 내에서 모든 DOM 대체가 발생합니다.

이 모델에서는 home.html이 첫 번째 페이지입니다. 추가 페이지를 만들려면 페이지 폴더를 마우스 오른쪽 단추로 클릭하고 추가> 새 항목> JavaScript> 페이지 컨트롤을 선택합니다. 이렇게하면 다른 WinJS "페이지", 특히 필요한 개체 구조를 설정하는 WinJS.UI.Pages.define 호출을 포함하는 JS에 대한 다른 HTML, CSS 및 JS 파일 집합이 제공됩니다.

이러한 파일은 이동할 수 있습니다. 프로젝트의 HTML 파일 경로가 탐색 호출뿐만 아니라 WinJS.UI.Pages.define 호출과 정확히 일치하는지 확인하십시오. '로드.

자세한 내용은 "페이지 컨트롤 및 탐색"의 136 페이지에서 시작하는 무료 전자 책 3 장, Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition을 참조하십시오.

0

WinJS.Navigation.navigate 트릭을해야합니다.

오류가 발생합니까?

+0

아직 HTML을로드하기 위해 탐색 이벤트를 듣는 사람이 필요합니다. 내 더 긴 대답을 보라. –

+0

당신 말이 맞아요. 그것이 내 앱에서와 같은 방식으로 작동하는 이유입니다. 그 점을 완전히 잊었습니다. – sebagomez

관련 문제