0

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

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

我已经在互联网上查看了所有内容,但找不到解决方案。我希望您了解我的问题并知道解决方案。提前致谢!!

4

1 回答 1

5

史蒂夫。如果您想对所有 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!
}

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

于 2017-09-28T12:16:56.713 回答