현재 WebView를 사용하여 DPP를 사용하여 암호화 된 데이터를 표시하려고합니다. 문제는 StorageFile을 IRandomAccessStream으로 읽은 후 (즉, 데이터의 암호화를 해제 한 후) 스트림이 어떤 방식 으로든 조작 된 경우 WebView에서 아무것도 표시하지 못한다는 것입니다. 다시 다음 http://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7Windows Store 8.1 : 스트림을 변경할 때 WebView.NavigateToStream이 작동하지 않습니다.
와 메모리 스트림에 IRandomAccessStream을 변환 할 수있는 "StreamUriWinRTResolver"클래스를 변경하고 :
이 문제
쉽게 Microsoft에서 제공하는 소스를 사용하여 재현 할 수 있습니다. 기본적으로, 라인 (128)에 S4_NavToStream.xaml.cs,이 변경이와StorageFile f = item as StorageFile;
IRandomAccessStream stream = await f.OpenAsync(FileAccessMode.Read);
return stream.GetInputStreamAt(0);
을 : 실행시
StorageFile f = item as StorageFile;
IRandomAccessStream randStream = await f.OpenAsync(FileAccessMode.Read);
var stream = randStream.AsStream();
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
return ms.AsInputStream();
이 빈 페이지가 표시됩니다. 물론 스트림 변환을 잘못 사용하지 않는 한 이것이 버그라고 생각하기 시작했습니다. 아무도 비슷한 걸 시도하지 않았 니?
코드 디버깅을 시도 했습니까? 'MemoryStream'에 텍스트가 올바르게 복사 되었습니까? – svick
예. 바이트를 바이트로 비교하지는 않았지만 메모리 스트림의 크기는 정확합니다. 실제 응용 프로그램에서는 스트림을 webview로 전달하기 전에 암호화되지 않은 스트림을 디스크에 복사했으며 디스크에 올바른 html 파일이 생성되었지만 아직 웹 페이지에 빈 페이지가 표시되었습니다. – letstango