在其他类

时间:2017-09-27 18:43:43

标签: swift webkit wkwebview wkwebviewconfiguration

您好,我目前在Swift 3项目中使用WKWebView。 是否可以将相同的WKWebView保存在另一个类中,以便在不同的类中运行一个主WKWebView?

我已尝试使用WKProcessPool和WKWebsiteDataStorage执行此操作,但是当我在其他类中设置新的WKWebView时,我不知道如何引用现有配置/登录wkwebview。

我已经浏览了整个互联网,但无法找到解决方案。 我希望你理解我的问题,并知道解决方案。 在此先感谢!!

1 个答案:

答案 0 :(得分:3)

燕姿。 如果要对所有Web视图实例使用相同的配置,只需使用静态属性/方法创建类或扩展。例如:

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!
}

如果您只想在网络视图实例之间共享Cookie,请为WKWebsiteDataStore.default()个实例WKWebViewConfiguration使用单个对象。