6

我可以将本地 HTML 文件(带有图像和...)加载到WebView?
仅设置Source参数并不能解决问题。

4

2 回答 2

14

只要文件是应用程序包的一部分,您就可以从文件中加载它,例如:

WebView2.Source = new Uri("ms-appx-web:///assets/text.html");

WebView.Navigate

WebView 可以使用 ms-appx-web:// 从应用程序包中加载内容,使用 http/https 从网络中加载内容,或者使用 NavigateToString 从字符串中加载内容。它无法从应用程序的数据存储中加载内容。要访问内网,必须在应用清单中开启相应的能力。

对于“随机”文件,我想您可以通过文件选择器提示用户选择文件,然后将其读入字符串并使用NavigateToString,但是根据您要完成的操作,用户体验可能会有些奇怪。

于 2012-11-05T04:28:47.757 回答
3

我在这个问题上工作了很长时间,我找到了一种方法:首先你应该将它保存在InstalledLocation文件夹中。如果您没有选择创建新的 .html 文件,您可以使用file.CopyAsync(htmlFolder, fname + ".html"); Look into my example:

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:///

于 2013-06-24T15:02:26.003 回答