只能从手表向iphone发送WCSession消息,而不是另一种方式

时间:2017-04-11 18:42:08

标签: swift apple-watch watchconnectivity

这是我第一次尝试任何手表功能并遇到问题,我只能从手表向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")
}

0 个答案:

没有答案