SwiftWatchConnectivity is a WatchConnectivity simple wrapper.
- Queueing requested and received task until all available
- Support all transer between iOS and watchOS
To run the example project, clone the repo, and run pod install
from the Example directory first.
- for iOS code
// ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
SwiftWatchConnectivity.shared.delegate = self
}
func connectivity(_ swiftWatchConnectivity: SwiftWatchConnectivity, updatedWithTask task: SwiftWatchConnectivity.Task) {
switch task {
case .sendMessage(let message):
// message is dictionaly that was sent by opponent OS
default:
break
}
}
- for watchOS code
// InterfaceController.swift
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
SwiftWatchConnectivity.shared.delegate = self
}
func connectivity(_ swiftWatchConnectivity: SwiftWatchConnectivity, updatedWithTask task: SwiftWatchConnectivity.Task) {
switch task {
case .sendMessage(let message):
// message is dictionaly that was sent by opponent OS
default:
break
}
}
// ExtensionDelegate.swift
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
SwiftWatchConnectivity.shared.handle(backgroundTasks)
:
}
// send dictionary immediately
SwiftWatchConnectivity.shared.sendMesssage(message: ["msg": NSDate()])
// send dictionary in foreground or background
SwiftWatchConnectivity.shared.transferUserInfo(userInfo: [
"string": "hello",
"bool": false,
"array": [1,2,3]
])
// send file with metadata
let fileURL = Bundle.main.url(forResource: "dog", withExtension: "jpg")!
SwiftWatchConnectivity.shared.transferFile(fileURL: fileURL, metadata: ["Level": 8])
- iOS 9.3
- watchOS 4.0
- Swift 4.0
SwiftWatchConnectivity is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SwiftWatchConnectivity'
SwiftWatchConnectivity is available under the MIT license. See the LICENSE file for more info.