Apple, часы заставляют открывать приложение на переднем плане на iphone на определенном экране? - PullRequest
0 голосов
/ 28 апреля 2018

Можно ли заставить Apple Watch принудительно открывать приложение iphone и / или открывать на определенном экране?

Я уже обнаружил, что приложение запускается в фоновом режиме (но не показывает, что приложение уже запущено) и даже может загружать данные. Когда я нажимаю значок приложения на iphone - приложение пропускает заставку и шаг "appdidfinishlaunching ...".

1 Ответ

0 голосов
/ 02 мая 2018

openParentApplication () фактически устарел. Новое соглашение заключается в использовании WatchConnectivity. Эта ссылка поможет вам получить некоторую информацию, а эта ссылка - это пример проекта Apple для Watch Connectivity. В частности, чтобы ответить на ваш вопрос, вы захотите использовать функцию sendMessage () из вашего расширения часов, чтобы сделать запрос, который активирует соответствующее приложение iOS в фоновом режиме и позволит ему вернуть запрошенные данные.

Вот небольшой пример запроса сообщения, который активирует приложение iOS в фоновом режиме. Однако сначала вам необходимо настроить Watch Connectivity в вашем приложении.

В вашем расширении часов

func sendActivationMessage() {
    if session.activationState == .activated && session.isReachable {
        session.sendMessage(["Watch Message" : "Activate"], , replyHandler: nil, errorHandler: nil)
    }
}

В вашем приложении для iOS

func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
    if let messageFromWatch = message["Watch Message"] {
        let messageData = messageFromWatch as! String

        if messageData == "Activate" {
           // Handle Request
        }
    }
}
...