2012-11-05 6 views
6

WebView에 로컬 HTML 파일 (이미지 등)을로드 할 수 있습니까?
Source 매개 변수 만 설정하면 트릭을 수행하지 않습니다.WebView에 로컬 HTML로드

답변

13

당신은 한 파일이 응용 프로그램 패키지의 일부, 예를 들면 그대로 파일에서로드 할 수 있습니다 :

WebView2.Source = new Uri("ms-appx-web:///assets/text.html"); 

웹보기

WebView.Navigate에서 를 사용하여 응용 프로그램의 패키지의 내용을로드 할 수 있습니다 ms-appx-web : //, http/https를 사용하는 네트워크 또는 NavigateToString을 사용하는 문자열에서 찾을 수 있습니다. 응용 프로그램의 데이터 저장소의 콘텐츠를로드 할 수 없습니다. 인트라넷에 액세스하려면 응용 프로그램 목록에서 해당 기능 을 켜야합니다. 는 '임의'파일의 경우

, 난 당신이 다음 파일을 선택 문자열로 그것을 읽고 NavigateToString을 사용하여 파일 선택기를 통해 사용자에게 메시지를 표시 할 수 있다고 가정하지만, 사용자 경험은 내용에 따라 약간 이상한있을 수 있습니다 성취하려고 노력하고있어. 나는 오랫동안이 문제에 근무하고 있었고, 난 그렇게 할 수있는 방법을 발견

+0

견적과 링크가 더 이상 일치하지 않는다고 생각합니다. – Torleif

3

: 을 처음에는 InstalledLocation 폴더에 저장해야합니다. 새 .html 파일을 만들 수있는 옵션을하지 않은 경우 당신은 내 예에 file.CopyAsync(htmlFolder, fname + ".html"); 봐 사용할 수 있습니다

StorageFolder htmlFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.CreateFolderAsync(@"HtmlFiles", CreationCollisionOption.GenerateUniqueName); 
IStorageFile file = await htmlFolder .CreateFileAsync(fname + ".html", CreationCollisionOption.GenerateUniqueName); 

을하고 당신은 쉽게 .html 파일 열 수있는 것보다 :

var fop = new FileOpenPicker(); 
fop.FileTypeFilter.Add(".html"); 
var file = await fop.PickSingleFileAsync(); 
if (file != null) 
{ 
    string myPath = file.Path.Substring(file.Path.IndexOf("HtmlFiles")); 
    myWebview.Navigate(new Uri("ms-appx-web:///" + myPath)); 
} 

기억을 단지 InstalledLocation에서 열 수 있습니다 ms-appx-web:///