Кэширование WebView в Xamarin.Forms для iOS - PullRequest
0 голосов
/ 10 марта 2020

Я создаю приложение в Xamarin.Forms (C#), которое является кроссплатформенным. У меня есть веб-сайт, который также является PWA (прогрессивное веб-приложение). Я пытаюсь получить к нему доступ через WebView, а также разрешить автономный просмотр последних кэшированных данных. У меня он отлично работает на Android, включив:

webView.Settings.SetAppCacheEnabled(true);

Однако я не могу заставить его работать правильно на iOS. Я очень новичок в разработке приложений и пытаюсь учиться. Буду признателен за любую помощь в обучении.

Простой пример mock / po c пример:

        ToolbarItem refresh;
        WebView webView;

        public TestingWebCache() {
            InitializeComponent();
            Title = "Website";
            IconImageSource = "airport.png";
            webView = new WebView();

            refresh = new ToolbarItem {
                IconImageSource = "refresh.png"
            };
            refresh.Clicked += Refresh;
            ToolbarItems.Add(refresh);

            init();

            Content = webView;
        }

        private void init() {
            webView.Source = "https://www.google.com" //not the website im using but used for testing
        }

        private async void Refresh(object sender, EventArgs e) {
            TRCWebViewItem.Reload();
        }

Я просмотрел множество ресурсов, включая документацию iOS WKWebView. У меня такое ощущение, что мне просто не хватает жизненно важной информации, которая объединит все воедино.

Я не могу загрузить html и отобразить его таким образом, потому что реальный веб-сайт не просто базовый c HTML и CSS

1 Ответ

0 голосов
/ 11 марта 2020

Эта проблема была исправлена ​​тем, что веб-разработчик также устанавливал кэш приложений в дополнение к хранилищу кеша. По состоянию на iOS 10 WKWebview по умолчанию настроено для кэширования веб-просмотра, но AppCache должен быть установлен на уровне веб-сайта. Android может обрабатывать, если установлено только Cache Storage, но iOS не может.

...