我可以将本地 HTML 文件(带有图像和...)加载到WebView
?
仅设置Source
参数并不能解决问题。
问问题
10646 次
2 回答
14
只要文件是应用程序包的一部分,您就可以从文件中加载它,例如:
WebView2.Source = new Uri("ms-appx-web:///assets/text.html");
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 回答