WatchManager.swift 903 B

1234567891011121314151617181920212223242526272829303132333435
  1. import Foundation
  2. import WatchConnectivity
  3. protocol WatchManager {}
  4. final class BaseWatchManager: NSObject, WatchManager {
  5. var session: WCSession
  6. init(session: WCSession = .default) {
  7. self.session = session
  8. super.init()
  9. if WCSession.isSupported() {
  10. session.delegate = self
  11. session.activate()
  12. }
  13. }
  14. }
  15. extension BaseWatchManager: WCSessionDelegate {
  16. func sessionDidBecomeInactive(_: WCSession) {}
  17. func sessionDidDeactivate(_: WCSession) {}
  18. func session(_: WCSession, activationDidCompleteWith state: WCSessionActivationState, error _: Error?) {
  19. print("ASDF state \(state.rawValue)")
  20. }
  21. func session(_ session: WCSession, didReceiveMessage message: [String: Any]) {
  22. print("ASDF message \(message)")
  23. session.sendMessage(["message": "It works!"], replyHandler: nil) { _ in
  24. }
  25. }
  26. }