Skip to content

Instantly share code, notes, and snippets.

@kasimte
Created January 2, 2021 03:34
Show Gist options
  • Select an option

  • Save kasimte/001e2927fbf9e0bb9e1a6fa0f8f1d6fc to your computer and use it in GitHub Desktop.

Select an option

Save kasimte/001e2927fbf9e0bb9e1a6fa0f8f1d6fc to your computer and use it in GitHub Desktop.

Revisions

  1. kasimte created this gist Jan 2, 2021.
    19 changes: 19 additions & 0 deletions WKScriptMessageHandler+Rx.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    import WebKit
    import RxSwift
    import RxCocoa

    public extension Reactive where Base: WKScriptMessageHandler {
    func didReceiveMessage() -> Observable<(WKUserContentController, WKScriptMessage)> {
    return self.methodInvoked(#selector(Base.userContentController))
    .map { args in
    guard args.count == 2,
    let controller = args[0] as? WKUserContentController,
    let message = args[1] as? WKScriptMessage else {
    throw RxCocoaError.castingError(object: args,
    targetType: (WKUserContentController, WKScriptMessage).self)
    }

    return (controller, message)
    }
    }
    }