33 行
728 B
Swift
33 行
728 B
Swift
|
|
import Foundation
|
||
|
|
|
||
|
|
@MainActor
|
||
|
|
public final class XWebViewBridge {
|
||
|
|
public static let shared = XWebViewBridge()
|
||
|
|
|
||
|
|
private var config = XWebViewConfig()
|
||
|
|
private weak var controller: AnyObject?
|
||
|
|
|
||
|
|
private init() {}
|
||
|
|
|
||
|
|
public func open(_ config: XWebViewConfig) {
|
||
|
|
self.config = config
|
||
|
|
}
|
||
|
|
|
||
|
|
public func currentConfig() -> XWebViewConfig {
|
||
|
|
config
|
||
|
|
}
|
||
|
|
|
||
|
|
public func setController(_ controller: (any XWebViewController)?) {
|
||
|
|
self.controller = controller
|
||
|
|
}
|
||
|
|
|
||
|
|
public func currentController() -> (any XWebViewController)? {
|
||
|
|
controller as? any XWebViewController
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@MainActor
|
||
|
|
public func openXWebView(_ config: XWebViewConfig) {
|
||
|
|
XWebViewBridge.shared.open(config)
|
||
|
|
}
|