我知道 iOS WKWebView 不支持离线应用程序缓存。
这是在 Safari 中启用的,所以我在 webkit 项目中搜索了负责的代码并发现了这个
WK首选项
- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled;
有人熟悉这个方法吗?是否可以通过访问此私有方法来启用 iOS 中的应用程序缓存? (我不会将应用程序发送到 Appstore)
2022 年更新
根据下面的评论之一,这个黑客不再起作用了。
是的,我们可以通过访问私有API来启用App缓存
创建一个类别WKPreferences
并添加到以下方法签名。
@interface WKPreferences (MyPreferences)
- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled;
@end
(我尝试了 PerformSelector:withObject: 但它不起作用。不知道为什么)
初始化WKWebView后,通过在以下对象中调用上述方法来启用appcache
[_wkWebView.configuration.preferences _setOfflineApplicationCacheIsEnabled:YES];
它将在 Cache 目录中创建 ApplicationCache.db 文件,并允许 Web 应用程序离线工作。
警告 :
2.5.使用非公开API的应用程序将被拒绝
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)