【发布时间】:2020-03-09 21:24:45
【问题描述】:
我正在 Xamarin.Forms(C#) 中创建一个跨平台的应用程序。我有一个网站,它也是一个 pwa(渐进式网络应用程序)。我正在尝试通过 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
【问题讨论】:
-
尝试使用 WkWebView 创建自定义渲染器,调用如下:
NSUrlRequest request = new NSUrlRequest(url, NSUrlRequestCachePolicy.ReturnCacheDataElseLoad, 60); -
如何初始化缓存? WKWebkit 会处理这个问题还是我必须直接声明才能缓存它?
-
因为我对 appdev 还很陌生,所以自定义渲染器吓到我了。您能否提供一些很好的学习参考资料,不胜感激。我想了解这一点,但入门非常困难。
-
你可以看看custom-renderer
标签: c# xamarin xamarin.forms webview offline