import WatchKit
import Foundation
import WatchConnectivity
class SummaryInterfaceController: WKInterfaceController, WCSessionDelegate {
var session: WCSession?
override func awake(withContext context: Any?) {
super.awake(withContext: context)
self.initalSetup()
}
private func initalSetup() {
self.configureWatchKitSesstion()
self.fetchHealthData()
}
func configureWatchKitSesstion() {
if WCSession.isSupported() {
session = WCSession.default
session?.delegate = self
session?.activate()
}
}
private func fetchHealthData() {
if let validSession = self.session {
let data: [String: Any] = ["iPhone": "Data from iPhone" as Any]
validSession.transferUserInfo(data)
}
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
}
func session(_ session: WCSession, didReceiveUserInfo userInfo: [String : Any] = [:]) {
print("received data: \(userInfo)")
}
iPhone类
import UIKit
import WatchConnectivity
class ViewController: UIViewController
{
var session: WCSession?
override func viewDidLoad() {
super.viewDidLoad()
self.configureWatchKitSesstion()
}
func configureWatchKitSesstion() {
if WCSession.isSupported() {
session = WCSession.default
session?.delegate = self
session?.activate()
}
}
}
extension ViewController: WCSessionDelegate {
func sessionDidBecomeInactive(_ session: WCSession) {
}
func sessionDidDeactivate(_ session: WCSession) {
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
}
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {
let receivedGlobal = applicationContext["iphone"] as? NSDictionary
}
func session(_ session: WCSession, didReceiveUserInfo userInfo: [String : Any] = [:]) {
print("received data: \(userInfo)")
DispatchQueue.main.async {
if let value = userInfo["iPhone"] as? String {
print("value is \(value)")
}
}
}
}
但是,它从不打电话给班级代表。
怎么解决这个问题?