在iOS的Xamarin.Forms中缓存WebView

问题描述 投票:0回答:1

我正在Xamarin.Forms(C#)中创建一个跨平台的应用程序。我有一个也是pwa(渐进式Web应用程序)的网站。我正在尝试通过WebView访问它,还允许脱机查看缓存的最新数据。通过启用,我可以使其在Android上完美运行:

webView.Settings.SetAppCacheEnabled(true);

但是我似乎无法使其在iOS上正常工作。我对应用程序开发非常陌生,正在尝试学习。任何学习方面的帮助将不胜感激。

简单的模拟/ POC示例:

        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并以这种方式显示,因为实际的网站不仅仅是基本的HTML和CSS

c# xamarin xamarin.forms webview offline
1个回答
0
投票

此问题已通过让Web开发人员在缓存存储空间之外还设置应用程序缓存来解决。从iOS 10开始,WKWebview的默认设置为缓存Webview,但必须在网站级别设置AppCache。如果仅设置了缓存存储,则Android可以处理,而iOS无法设置。

谢谢@Leo Zhu对自定义渲染器选项的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.