UWP Xamarin C # - WebView вернуться назад навигационная страница возврата истек - PullRequest
0 голосов
/ 05 октября 2018

приложение показывает сайт с WebView.На сайте была кнопка возврата для навигации, но при нажатии на нее отображалась эта ошибка:

Срок действия веб-страницы истек. Основная причина: копия страницына телефоне не обновляется, и сайт запрашивает обновление, чтобы просмотреть информацию

Мой код запроса WebView:

var request = new Windows.Web.Http.HttpRequestMessage(Windows.Web.Http.HttpMethod.Post, new Uri("http://example.com/index.php"));

IHttpContent content = new HttpFormUrlEncodedContent(new [] { (new KeyValuePair<string, string>("param", myParam)) });
request.Content = content;
webView.NavigateWithHttpRequestMessage(request);

У меня была похожая проблема в приложении Xamarin.Android иЯ решил добавить этот код в WebView:

webView.Settings.SetAppCacheEnabled(true);
webView.Settings.SetAppCacheMaxSize(8 * 1024 * 1024);
webView.Settings.CacheMode = CacheModes.CacheElseNetwork;

Я пытался увидеть похожую конфигурацию для UWP, но ничего не нашел по этому поводу.

Может кто-нибудь мне помочь?Заранее спасибо.

1 Ответ

0 голосов
/ 05 октября 2018

Я решил добавить эту строку кода и изменить webView.NavigateWithHttpRequestMessage (запрос) в webView.Navigate (uri):

                var myFilter = new HttpBaseProtocolFilter();
                myFilter.AllowAutoRedirect = true;
                myFilter.CacheControl.ReadBehavior = HttpCacheReadBehavior.Default;
                myFilter.CacheControl.WriteBehavior = HttpCacheWriteBehavior.Default;
                var cookieManager = myFilter.CookieManager;

                var request = new Windows.Web.Http.HttpRequestMessage(Windows.Web.Http.HttpMethod.Post, new Uri("http://example.com/index.php"));
                IHttpContent content = new HttpFormUrlEncodedContent(new [] { (new KeyValuePair<string, string>("param", myParam)) });
                request.Content = content;

                using (var client = new Windows.Web.Http.HttpClient())
                {
                    var result = await client.SendRequestAsync(request);
                    result.EnsureSuccessStatusCode();
                    var resultContent = await result.Content.ReadAsStringAsync();
                }

                webView.Settings.IsJavaScriptEnabled = true;
                webView.Settings.IsIndexedDBEnabled = true;

                webView.Navigate(new Uri("http://example.com/index.php"));

Ссылка на -> https://dzone.com/articles/sharing-sessions-between-httpclient-and-webviews-o

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...