-1

如果用户同时打开了 Apple Watch 应用程序和 iPhone 应用程序,我希望能够更新我的 Apple Watch 视图。我知道这里有一个WatchKit 1 问题,但我想知道我是否可以使用 WatchConnectivity 来做到这一点。

在我的 iOS 应用程序中,我发送了一条消息:

if WCSession.isSupported() {
    // Set the session to default session singleton
    let session = WCSession.defaultSession()
    // Fire the message to watch
    NSLog("send message")

    session.sendMessage(["action": "messageAction"], replyHandler: nil, errorHandler: { (error) -> Void in
        // Display alert
        NSLog(error.description)
    })
}

但我不断收到错误:

Error Domain=WCErrorDomain Code=7007 "WatchConnectivity session on paired device is not reachable." UserInfo={NSLocalizedDescription=WatchConnectivity session on paired device is not reachable.}

从 iPhone 向 Apple Watch 发送消息,WatchConnectivity sendMessage使用方法是否正确?

4

1 回答 1

2

如果您希望与可访问的设备进行交互通信,这只是“正确”的方法。

但是您没有显示在哪里设置会话委托或激活会话:

let session = WCSession.defaultSession()
session.delegate = self
session.activateSession()

您可能还需要添加一些检查以确保手表已配对 ( session.paired)、手表应用已安装 ( ) 以及手表在尝试与之交互通信之前session.watchAppInstalled实际上是可访问的 ( ),以使您的应用更加健壮session.reachable.

有关详细信息,请参阅本指南。

您还可以选择使用非交互式(后台)方法来为您的应用程序排队消息,直到它打开并可以接收它们。

于 2016-03-16T16:42:54.040 回答