RedditLoginScriptBridge.swift 569 B

12345678910111213141516171819202122
  1. import WebKit
  2. @MainActor
  3. final class RedditLoginScriptBridge: NSObject, WKScriptMessageHandler {
  4. static let shared = RedditLoginScriptBridge()
  5. var onLoginRequested: (() -> Void)?
  6. private override init() {
  7. super.init()
  8. }
  9. nonisolated func userContentController(
  10. _ userContentController: WKUserContentController,
  11. didReceive message: WKScriptMessage
  12. ) {
  13. guard message.name == RedditLoginBridgeStyle.messageHandlerName else { return }
  14. Task { @MainActor in
  15. onLoginRequested?()
  16. }
  17. }
  18. }