Apple Watch: WKInterfaceDevice.current(). Play(.success) не работает

Я стараюсь, чтобы  Watch вибрировал из моего кода:

WKInterfaceDevice.current().play(.success)

но ничего не происходит Я также старался быть в главной теме:

DispatchQueue.main.async {
    WKInterfaceDevice.current().play(.success)
}

еще ничего. Я что-то здесь упускаю? Я ожидал, что это будет легкая задача, но я провалился полностью...

3 ответа

Может быть, ваше приложение для часов не в активном состоянии? Ссылаясь на официальную документацию:

Этот метод не действует при вызове, когда свойство applicationState вашего общего объекта WKExtension является либо фоновым, либо неактивным. По умолчанию вы не можете воспроизводить тактильные отзывы в фоновом режиме. Единственным исключением являются приложения с активной тренировкой.

Таким образом, если у вас не запущен HKWorkoutSession, если ваше приложение работает в фоновом режиме, вы не можете играть в тактику.

В качестве альтернативы вместо HKWorkoutSession вы можете использовать WKExtendedRuntimeSession для поддержки запуска приложения в фоновом режиме, чтобы звуки и тактильные ощущения работали. Это необходимо сделать с использованием сеанса физиотерапии или интеллектуального сигнала тревоги.

Проверьте, включены ли тактильные оповещения в настройках устройства!

Настройки -> Звуки и тактильные ощущения.

Другие вопросы по тегам