我目前正在开发一个同时运行多个WKWebViews
的应用程序,想想浏览器中的选项卡,但是似乎如果我有大约 5 个WKWebView
实例正在运行,其中至少一个会变白并在某个时候显示白屏。我确信这与我在后台进行的一些我无法控制的内存管理有关。
我的问题是:如果我想在切换屏幕之间保存WKWebView
的状态,我将如何做到这一点?
我最初的想法是将HTML
、CSS
和JavaScript
保存到某种本地存储中,并在完全重新加载页面之前使用"缓存"内存重新加载页面。
我一直在研究Chrome的开源项目,似乎他们正在用Objective-C++做一些事情,但我不确定为什么。
如果有人对此有任何想法或知识,将不胜感激,谢谢!
你的问题还不够清楚,无论如何让我给你一些建议, 即使您在 5 个 WKWebviews 之间切换,它们的状态也将保持不变,因此无需手动保存状态。
关于加载时的普通网页问题:
实现
- (void)webView:(WKWebView *)webView
didFailProvisionalNavigation:(WKNavigation *)navigation
withError:(NSError *)error;
在此方法中,每当加载失败时重新加载 Web 视图。