Вы можете сохранить свою веб-страницу в локальном файле, например, в виде строки, чтобы вернуть тело ответа в виде строки, вы можете создать новый экземпляр HttpClient.
Вот метод, в NavigationCompleted
случае вашего WebView
, кода:
private async void webView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
if (args.IsSuccess == true)
{
try
{
using (HttpClient client = 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);
using (StreamWriter writer = new StreamWriter(await file.OpenStreamForWriteAsync()))
{
writer.Write(htmlstring);
}
}
}
}
catch (Exception ex)
{
}
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
StorageFile file = await local.GetFileAsync("offline-web.html");
if (file != null)
{
using (StreamReader reader = new StreamReader(await file.OpenStreamForReadAsync()))
{
var htmlstring = await reader.ReadToEndAsync();
sender.NavigateToString(htmlstring);
}
}
else
{
MessageDialog dlg = new MessageDialog("Please check your internet", "Warning");
await dlg.ShowAsync();
}
}
}
Вы также можете попробовать другие методы, например, сохранить файл HTML, и перейдите к локальному файлу. И, как сказал @Amod Gokhale, если есть какие-то динамические объекты, которые нужно загружать с помощью Интернета, то в автономном режиме эти объекты не будут загружены, даже если вы сохранили html-страницу, если вы также не сохранили все ресурсы этих динамических объектов ,
Веб-страница в вопросе статическая или динамическая? –
, если он статичен, вы всегда можете связать его вместе с вашим проектом и загрузить локальный файл. –
Теперь моя проблема более ясна –