我正在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
此问题已通过让Web开发人员在缓存存储空间之外还设置应用程序缓存来解决。从iOS 10开始,WKWebview的默认设置为缓存Webview,但必须在网站级别设置AppCache。如果仅设置了缓存存储,则Android可以处理,而iOS无法设置。
谢谢@Leo Zhu对自定义渲染器选项的帮助。