WatchKit 2.0 Отправить сообщение с телефона на часы

Я хочу иметь возможность обновлять свои представления Apple Watch, если у пользователя открыто как приложение Apple Watch, так и приложение iPhone. Я знаю, что есть 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 правильный метод?


person Mike Walker    schedule 16.03.2016    source источник


Ответы (1)


Это только «правильный» метод, если вы хотите интерактивно общаться с доступным устройством.

Но вы не показали, где вы установили делегат сеанса или активировали сеанс:

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

Вы также можете добавить некоторые проверки, чтобы убедиться, что часы сопряжены (session.paired), что приложение для часов установлено (session.watchAppInstalled) и что часы действительно доступны (session.reachable), прежде чем пытаться взаимодействовать с ними в интерактивном режиме. приложение более надежное.

Дополнительные сведения см. в этом руководстве.

Вы также можете выбрать неинтерактивный (фоновый) метод для постановки сообщений в очередь для вашего приложения, пока оно не откроется и не сможет их получать.

person Community    schedule 16.03.2016