我可以将本地HTML文件(包含图片和...)加载到WebView
吗?
只设置Source
参数不起作用。
答案 0 :(得分:13)
只要文件是应用包的一部分,您就可以从文件中加载它,例如:
WebView2.Source = new Uri("ms-appx-web:///assets/text.html");
WebView可以使用应用程序包加载内容 ms-appx-web://,来自使用http / https的网络,或来自字符串 使用NavigateToString。它无法从应用程序加载内容 数据存储。要访问Intranet,请使用相应的功能 必须在应用程序清单中打开。
对于'随机'文件,我想你可以通过文件选择器提示用户选择文件,然后将其读成字符串并使用NavigateToString,但用户体验可能有点奇怪取决于什么你想要完成。
答案 1 :(得分: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:///