2017-01-29 1 views
0

webview element을 javascript를 사용하는 범용 앱에 사용하려고합니다. 내 목표는 HTML 문서에 내 콘텐츠를 추가하는 웹 사이트를 탐색하는 것입니다.UWP : navigateToString 메서드를 사용하여 webview에 페이지가 표시되지 않습니다.

먼저 webview의 src 속성을 www.example.com으로 설정하고 사이트를 탐색합니다. 이것은 webview가 사이트를 탐색 할 수 있는지 확인하기위한 것입니다.

다음으로, HTML을 받고 시도와 같은 navigateToString 방법을 사용하여 웹보기 위해로드 :

$.get(url, function (data) { 
     webView.navigateToString(data); 
    }); 

이것은 aperarently 일부의 .js 또는 .CSS 파일이로드되지 않은 페이지 모양 (에서로드됩니다 또는 실행이 차단됨),로드되지 않은 상태 여야합니다.

URL이 페이지를 로딩하고 HTML을 수동으로로드하는 것의 차이점이 궁금합니다. 그리고이 문제를 극복 할 수있는 대안이 있습니다.

참고 : 저는 js와 html 모두 새로 왔습니다.

+1

다운로드 한 hml에서 참조하는 css 및 js 파일에 상대 경로 또는 절대 경로가 사용됩니까? webview 컨트롤에서 html 문자열을 표시하는 경우 상대 경로가 작동하지 않을 것입니다. –

답변

1

웹 페이지는 일반적으로 하나의 HTML 파일로 만들어지지 않습니다. 작동 시키려면 HTML뿐만 아니라 javascript 및 css 파일을 검색해야합니다. 이것은 지루한 작업 일 수 있습니다.

웹에서 무언가를 열려고하는 경우 가장 쉬운 방법은 일반 navigate()을 수행하여 URI를 매개 변수로 사용하고 브라우저 에서처럼 "전체"탐색을 수행하는 것입니다. CSS/JS의 검색/로딩이 수행됩니다.

응용 프로그램에 로컬 인 로컬 페이지를 열려면 navigateToString()이 좋은 경로이지만 모든 페이지 종속성 (css/js fiels)을 로컬로 호스팅하거나 모든 스타일 및 코드를 HTML 페이지 자체.

+0

그러나 navigate() 메서드를 사용하면 탐색 한 문서를 변경할 수 없습니까? –

+0

페이지 코드를 직접 수정할 수는 없지만 웹 뷰이므로 invokeScriptAsync()를 사용하여 페이지를 변경할 일부 JavaScript를 실행할 수 있습니다. – Vincent

+0

예, invokeScriptAsync() 함수는 호출 된 스크립트 함수가 있어야합니다. html 문서에 정의되어 있습니다. html 문서를 변경할 수 없기 때문에 호출 할 스크립트 함수가 없습니다. 내 스크립트가 내게 만들어지지 않은 html 파일에 첨부 할 수있는 방법을 알고 있습니까? –

관련 문제