WatchKit InterfaceController условно воспроизводит тактильно в sendMessage:replyHandler:

Я хочу проверить контроллер интерфейса, чтобы убедиться, что он все еще находится на переднем плане, когда я получаю ответ от телефона. Если это так, выполните тактильное действие, чтобы пользователь знал, что он закончил работу.

sendMessage:replyHandler: это то, что я использую для связи с телефоном, но возвращение может занять много времени. InterfaceController настроен быть WCSessionDelegate, Это может занять достаточно много времени, чтобы пользователь мог опустить запястье до завершения. В этом случае я хочу поймать тактильного, чтобы не выстрелить. На данный момент гаптик может стоять в очереди, а затем играть в случайное время в будущем, что бесполезно.

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

2 ответа

Решение

Сначала я бы подумал об улучшении кода iOS, поэтому ответ не займет много времени.

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

Кстати, контроллер интерфейса будет на экране, так как он выполняет обработчик ответа.

Шаги, которые я бы предложил.

  1. sendMessage:replyHandler: от Наблюдения, чтобы отправить запрос Задачи, который попросит телефон выполнить некоторое длительное задание.
  2. На часах с этим Зовом сделайте немного BOOL, скажем shouldUpdatePhone = YES
  3. Теперь учтите, что ваша задача выполняется, а Watch отключается, в этом случае ваш флаг (shouldUpdatePhone) - ДА, просто повторите вызов и скажите iPhone, что Screen теперь неактивен.
  4. Если после этого долгое задание будет выполнено, у вас будет информация о том, что Watch теперь неактивен, тогда избегайте ответного сигнала Haptic.
Другие вопросы по тегам