WatchKit 2.0从手机发送消息观看

时间:2016-03-16 15:28:03

标签: ios swift watchkit watch-os-2 watchconnectivity

如果用户同时打开Apple Watch应用程序并打开iPhone应用程序,我希望能够更新Apple Watch视图。我知道有一个WatchKit 1 question asked here,但我想知道我是否可以使用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是否使用正确的方法?

1 个答案:

答案 0 :(得分:2)

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

但是您没有显示您设置会话代理的位置或激活会话:

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

您可能还需要添加一些检查以确保手表已配对(session.paired),手表应用已安装(session.watchAppInstalled),并且手表实际可以访问({{ 1}})在尝试与之交互式沟通之前,使您的应用程序更加健壮。

See this guide for more details.

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