Visual studio 为Windows UWP WebView实现脱机模式

Visual studio 为Windows UWP WebView实现脱机模式,visual-studio,webview,uwp,windows-10,windows-10-universal,Visual Studio,Webview,Uwp,Windows 10,Windows 10 Universal,我有一个带有WebView的Windows WUP应用程序,它正在从internet加载网页。现在,如果用户处于脱机状态,我想显示此页面的本地版本。该网页每天更改一次,仅显示一个基本表格 我该怎么做 感谢您的帮助。您可以将网页保存在本地文件中,例如作为字符串,要将响应正文作为字符串返回,您可以创建的新实例 下面是一个方法,在您的WebView的NavigationCompleted事件中,代码如下: private async void webView\u NavigationCompleted

我有一个带有WebView的Windows WUP应用程序,它正在从internet加载网页。现在,如果用户处于脱机状态,我想显示此页面的本地版本。该网页每天更改一次,仅显示一个基本表格

我该怎么做


感谢您的帮助。

您可以将网页保存在本地文件中,例如作为字符串,要将响应正文作为字符串返回,您可以创建的新实例

下面是一个方法,在您的
WebView
NavigationCompleted
事件中,代码如下:

private async void webView\u NavigationCompleted(webView发送方、webviewsnavigationcompletedeventargs args)
{
if(args.issucess==true)
{
尝试
{
使用(HttpClient=new HttpClient())
{
if(args.Uri!=null&&args.Uri.ToString()https://developer.microsoft.com/en-us/windows/develop")
{
var htmlstring=await client.GetStringAsync(args.Uri);
StorageFolder local=ApplicationData.Current.LocalFolder;
StorageFile file=await local.CreateFileAsync(“offline web.html”,CreationCollisionOption.ReplaceExisting);
使用(StreamWriter writer=newstreamwriter(wait file.OpenStreamForWriteAsync()))
{
writer.Write(htmlstring);
}
}
}
}
捕获(例外情况除外)
{
}
}
其他的
{
StorageFolder local=ApplicationData.Current.LocalFolder;
StorageFile file=await local.GetFileAsync(“offline web.html”);
如果(文件!=null)
{
使用(StreamReader=newstreamreader(wait file.OpenStreamForReadAsync()))
{
var htmlstring=await reader.ReadToEndAsync();
sender.NavigateToString(htmlstring);
}
}
其他的
{
MessageDialog dlg=新建MessageDialog(“请检查您的互联网”,“警告”);
等待dlg.ShowAsync();
}
}
}

您还可以尝试其他方法,例如保存html文件,并导航到本地文件。正如@Amod Gokhale所说,如果有一些动态对象需要通过互联网加载,那么在离线模式下,即使您保存了html页面,也不会加载这些对象,除非您还保存了这些动态对象的所有资源。

有问题的网页是静态的还是动态的?如果是静态的,您可以始终将其与项目捆绑在一起并加载本地文件。现在我的问题更清楚了