Как открыть App Store из приложения watchOS?

Предположим, у меня есть Pro-версия приложения watchOS, и я хочу перенаправить пользователя в App Store на iPhone. Как этого добиться?

Я пытался использовать WatchConnectivity. В приложении iOS у меня есть следующий код:

func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
    if message[.openProAppOnAppstoreMessageKey] != nil {
        // NOTE: Works only in foreground
        UIApplication.shared.openURL(.proApp)
    }
}

Проблема в том, что это будет работать, только если приложение iOS находится на переднем плане. В фоновом режиме session(didReceiveMessage:) вызывается успешно, однако openURL не действует.


person kelin    schedule 14.08.2017    source источник


Ответы (1)


Невозможно вывести приложение iOS на передний план с помощью WatchConnectivity, и вы не можете открывать какие-либо приложения в фоновом режиме. Пользователь должен открыть ваше приложение, чтобы это работало.

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

person Dávid Pásztor    schedule 14.08.2017
comment
Как это описание updateApplicationContext может помочь в моем конкретном вопросе? Я хочу немедленно открыть App Store, а updateApplicationContext для этого не подходит. - person kelin; 14.08.2017
comment
До редактирования вообще не было ясно, в чем проблема. Однако я обновил свой ответ на основе вашего редактирования. - person Dávid Pásztor; 14.08.2017