在其他 类 中使用相同的 WKWebView
Use the same WKWebView in other classes
您好,我目前在我的 Swift 3 项目中使用 WKWebView。
是否可以在另一个 class 中保留相同的 WKWebView,以便您在不同的 class 中成为 运行 一个主要的 WKWebView?
我已经尝试使用 WKProcessPool 和 WKWebsiteDataStorage 来做到这一点,但是当我在另一个 class 中设置一个新的 WKWebView 时,我不知道如何在 wkwebview 中引用现有的 configuration/logged .
我在网上找遍了,但找不到解决办法。
我希望你能理解我的问题并知道解决方案。
提前致谢!!
斯特夫。
如果要对所有 Web 视图实例使用相同的配置,只需创建 class 或使用静态 property/method 的扩展。例如:
extension WKWebViewConfiguration {
static var shared : WKWebViewConfiguration {
if _sharedConfiguration == nil {
_sharedConfiguration = WKWebViewConfiguration()
_sharedConfiguration.websiteDataStore = WKWebsiteDataStore.default()
_sharedConfiguration.userContentController = WKUserContentController()
_sharedConfiguration.preferences.javaScriptEnabled = true
_sharedConfiguration.preferences.javaScriptCanOpenWindowsAutomatically = false
}
return _sharedConfiguration
}
private static var _sharedConfiguration : WKWebViewConfiguration!
}
如果您只想在 Web 视图实例之间共享 cookie,请为您的 WKWebViewConfiguration
个实例使用 WKWebsiteDataStore.default()
的单例对象。
您好,我目前在我的 Swift 3 项目中使用 WKWebView。 是否可以在另一个 class 中保留相同的 WKWebView,以便您在不同的 class 中成为 运行 一个主要的 WKWebView?
我已经尝试使用 WKProcessPool 和 WKWebsiteDataStorage 来做到这一点,但是当我在另一个 class 中设置一个新的 WKWebView 时,我不知道如何在 wkwebview 中引用现有的 configuration/logged .
我在网上找遍了,但找不到解决办法。 我希望你能理解我的问题并知道解决方案。 提前致谢!!
斯特夫。 如果要对所有 Web 视图实例使用相同的配置,只需创建 class 或使用静态 property/method 的扩展。例如:
extension WKWebViewConfiguration {
static var shared : WKWebViewConfiguration {
if _sharedConfiguration == nil {
_sharedConfiguration = WKWebViewConfiguration()
_sharedConfiguration.websiteDataStore = WKWebsiteDataStore.default()
_sharedConfiguration.userContentController = WKUserContentController()
_sharedConfiguration.preferences.javaScriptEnabled = true
_sharedConfiguration.preferences.javaScriptCanOpenWindowsAutomatically = false
}
return _sharedConfiguration
}
private static var _sharedConfiguration : WKWebViewConfiguration!
}
如果您只想在 Web 视图实例之间共享 cookie,请为您的 WKWebViewConfiguration
个实例使用 WKWebsiteDataStore.default()
的单例对象。