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