我想将本地文件夹中的本地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
尝试使用 ms-appx-web:// 方案而不是 ms-aspx:// 从 WebView 加载 html。如果这不起作用,您可能需要使用 ms-appdata:// 方案来访问图像(如果它位于您的应用程序数据文件夹中)。
一些可能有帮助的进一步资源:
如何将本地 HTML 文件加载到 Webview
URI 方案
中如何引用内容
于 2013-01-17T15:35:51.913 回答