Как я могу разбудить приложение iPhone в фоновом режиме, чтобы запустить функцию и вернуть результаты на Apple Watch?

У меня есть таблица в приложении Apple Watch, заполненная данными из приложения iPhone.

В приложении для iPhone мне нужно получить эти данные из Интернета. На телефоне функция называется retrieveData (). У меня также есть функция sendToWatch (), которая отправляет эти данные на часы, когда приложение телефона открыто.

Я хотел бы найти способ запускать retrieveData () и sendToWatch () без необходимости открывать приложение для телефона. Я изучал это последние несколько часов, и это кажется очень сложным.

Я пробовал функцию openParentApp, которая есть в документации Apple, но у меня НЕТ ИДЕИ, как ее настроить или как ее реализовать. Я пытался искать учебные пособия в Интернете в течение последних нескольких часов, но все уже устарело, и мне не повезло.

Кто-нибудь знает какие-нибудь хорошие уроки по этому поводу?


person bkSwifty    schedule 02.10.2015    source источник


Ответы (1)


Как вы знаете, вы НЕ МОЖЕТЕ использовать openParentApp в watchOS 2. Вы можете использовать Watch Connectivity вместо openParentApp.

исх. http://www.kristinathai.com/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/

Ниже приводится один из примеров.

1) Вызов метода sendMessage из Apple Watch

WCSession.defaultSession().sendMessage(applicationDict,
   replyHandler: { ([String : AnyObject]) → Void in
      // Handle reply
   })
   errorHandler: { (NSError) → Void in
      // Handle error
});

2) в вашем iPhone вызывается метод didReceiveMessage

Запустите retrieveData () и отправьте данные в Apple Watch этим методом.

func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
    // run retrieveData()

    // send data to Apple Watch
    replyHandler(["retrievedData" : data])
}

3) Получать данные в replyHandler в Apple Watch

Удачи!

person Kosuke Ogawa    schedule 03.10.2015