2015-11-29 2 views
0

Я хочу передать данные от Iphone до Apple Watch. Я пробовал все, но когда я использую функцию didReceiveUserInfo, ничего не происходит, я проверяю совместимость WCSession и это так.WatchOS2 рамки для подключения не работает

код на моем Iphone:

if(ipField.text != ""){ 
       do { 
        try watchSession?.transferUserInfo(["name" : "test"]) 
        print("context update") 

       } catch let error as NSError { 
        NSLog("Updating the context failed: " + error.localizedDescription) 
        print("failed") 
        } 

код на моей компании Apple Watch:

func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]){ 

    let Value = userInfo["name"] as? String 

    self.currentIpLabel.setText(Value) 
    print("done1") 

} 

WCSESSION проверить Iphone:

if (WCSession.isSupported()) { 
      let session = WCSession.defaultSession() 
      session.delegate = self 
      session.activateSession() 

      print("SUPPORT OK") 
     } 

WCSESSION проверка AppleWatch

if(WCSession.isSupported()){ 
      watchSession = WCSession.defaultSession() 
      // Add self as a delegate of the session so we can handle messages 
      watchSession!.delegate = self 
      watchSession!.activateSession() 

     } 
+1

Получаете ли вы какие-либо ошибки на стороне отправки в обратном вызове didTransferUserInfo? Если нет, отправьте код, в котором вы активируете сеанс с обеих сторон, а также код для отправки информации о пользователе и код для его получения. – ccjensen

+1

@ccjensen Привет, я добавил код в свой вопрос. У меня нет ошибок. – LifeOS

+0

У вас есть решение? @ccjensen – LifeOS

ответ

1

Я создал проблему с github с предлагаемым патчем. Я протестировал эту версию приложения на своих собственных устройствах, и часы получили userInfo просто отлично. Основное изменение, которое я сделал, - переместить объявление методов WCSessionDelegate из «вложенных функций» в функции верхнего уровня в файле. Вложенные функции доступны только из области функции, в которой они определены, что означает, что у объекта делегата не было бы реализаций для этих методов.

+0

УДИВИТЕЛЬНО !!! Спасибо: D – LifeOS

+0

Я могу отправить от яблока смотреть на iphone, работая Amazing! но когда я закрываю приложение, я больше не могу этого делать, есть ли способ, который может это позволить? @ccjensen – LifeOS

+0

это звучит как отдельный вопрос :), но если вы спрашиваете, как приложение-наблюдатель может общаться с приложением iOS, которое в настоящее время не работает, API-интерфейс sendMessage может разбудить его в фоновом режиме (обязательно проверьте isReachable свойство перед использованием sendMessage) – ccjensen