2

ローカルフォルダにあるローカルhtmlファイルをwebviewにロードしたいのですが、WebViewは'ms-aspx:///'プロトコルをサポートしていません。htmlファイルを読み取ってストリーミングし、それをに変換するソリューションを見つけました。文字列、NavigateToStringメソッドを使用してhtmlをロードすると、うまく機能します。しかし、htmlファイルに画像がある場合、その画像は表示できませんでした。誰か助けてくれませんか?

4

2 に答える 2

5

解決しました。

解決:

画像ファイルをbase64文字列に変換します

StorageFolder appFolder = ApplicationData.Current.LocalFolder;
        StorageFile file = await appFolder.GetFileAsync("SplashScreen.png");
        using (var stream = await file.OpenAsync(FileAccessMode.Read))
        {
            var reader = new DataReader(stream.GetInputStreamAt(0));
            var bytes = new byte[stream.Size];
            await reader.LoadAsync((uint)stream.Size);
            reader.ReadBytes(bytes);
            base64 = Convert.ToBase64String(bytes);
        }

StringBuilderを使用してhtml文字列を作成します

sb.Append("<html><head><title>Image test</title></head><body><p>This is a test app!</p><img src=\"data:image/png;base64,");
        sb.Append(base64);
        sb.Append("\" /></body></html>");
        TestWebView.NavigateToString(sb.ToString());     
于 2013-01-22T09:08:06.573 に答える
0

WebViewからhtmlをロードするには、ms-aspx://の代わりにms-appx-web://スキームを使用してみてください。それでも問題が解決しない場合は、ms-appdata://スキームを使用して、アプリケーションデータフォルダーにある画像にアクセスする必要があります。

役立つ可能性のあるその他のリソース:
ローカルHTMLファイルをWebviewURI
スキームにロードする
方法コンテンツを参照する方法

于 2013-01-17T15:35:51.913 に答える