О Swift и WatchConnectivity.Передача информации о пользователе работает, но интерактивный обмен сообщениями не работает - PullRequest
0 голосов
/ 27 ноября 2018

Я написал код передачи информации о пользователе, как показано ниже. (Я хочу отправлять сообщения с iPhone для просмотра.)

//iPhone project
if (WCSession.isSupported()) {
        session = WCSession.default

        session?.delegate = self
        session?.activate()}
    session!.transferUserInfo(["titles": List_watch,"Colors_watch": c_w])

//Watch project

func session(_ session: WCSession, didReceiveUserInfo userInfo: [String : Any] = [:]) {

//do something}

Это работает, нокогда я использую интерактивный обмен сообщениями, как показано ниже, он не работает.

 //iPhone project
if (WCSession.isSupported()) {
        session = WCSession.default

     session?.delegate = self
     session?.activate()}
     session!.sendMessage(["titles": List_watch,"Colors_watch": c_w], replyHandler: { replyDict in }, errorHandler: { error in
                    print("\(error)")

                })

//Watch project

func session(_ session: WCSession, didReceiveMessage message: [String: Any], replyHandler: @escaping ([String: Any]) -> Void) {

//do something}

Тогда эта ошибка errorHandler говорит:

Error Domain =WCErrorDomain Code = 7004 "Сеанс WatchConnectivity не активирован."UserInfo = {NSLocalizedRecoverySuggestion = Активировать сеанс WatchConnectivity., NSLocalizedDescription = Сеанс WatchConnectivity не был активирован., NSLocalizedFailureReason = Функция activSession не был вызван.}

Это говорит о том, что сеанс WatchConnectivity не был активирован, однако, когда япросто используйте User Info Transfer, он работает правильно.Поэтому я подумал, что сессия была активирована.Что это за проблема?Кто-нибудь знает?

...