这是我第一次尝试任何手表功能并遇到问题,我只能从手表向iPhone发送消息,但无法从iPhone发送观看。当会话可以访问时,我会访问.sendMessage方法,但是didReceiveMessage日志永远不会在interfaceController中触发。
我想要做的就是在手表上有一个按钮,用于请求viewController中某些数组的最新计数。我也试过了sendUserInfo并得到了同样的东西,单向沟通。任何帮助将不胜感激。
xcode 8.1 swift 2.3& 3(手表)
查看控制器
在viewDidLoad
中if WCSession.isSupported() {
WCSession.defaultSession().delegate = self
WCSession.defaultSession().activateSession()
}
对于WCSessionDelegate&消息
func session(session: WCSession, activationDidCompleteWithState activationState: WCSessionActivationState, error: NSError?){
print("Session Active: \(activationState), Error: \(error)")
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) {
if (message["getCount"] as? String == "please"){
print("The watch asked nicely") // this logs on watch button press
if (WCSession.defaultSession().reachable) {
print("isReachable") // this logs on watch button press
WCSession.defaultSession().sendMessage(["yo":"count"], replyHandler: nil, errorHandler: nil)
}
}
}
func sessionDidBecomeInactive(session: WCSession){
print("Phone session inactive")
}
func sessionDidDeactivate(session: WCSession){
print("Phone session deactivated")
}
InterfaceController
@IBAction func refreshButton() {
if(WCSession.isSupported()){
WCSession.default().sendMessage(["getCount":"please"], replyHandler: nil, errorHandler: nil)
}
}
@IBOutlet var registrationCount: WKInterfaceLabel!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
}
override func willActivate() {
super.willActivate()
if WCSession.isSupported() {
WCSession.default().delegate = self
WCSession.default().activate()
}
}
override func didDeactivate() {
super.didDeactivate()
}
func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
print("Cool phone sent me a message")
}
@available(iOS 9.3, *)
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?){
print("Session Active: \(activationState), Error: \(error)")
}
func sessionDidBecomeInactive(session: WCSession){
print("Watch session inactive")
}
func sessionDidDeactivate(session: WCSession){
print("Watch session deactivated")
}