Вибрация с использованием UIFeedbackGenerator или AudioServicesPlaySystemSound
Когда я хочу, чтобы iPhone вибрировал, как я могу определить, использовать ли UIFeedbackGenerator
или же AudioServicesPlaySystemSound
?
Новый тактильный движок доступен только на iOS10 и на моделях iPhone 7, так как бы нам написать код, который использует этот новый движок, когда поддерживается, но отступает от использования не так круто AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
когда нет?
Apple говорит не беспокоиться об этом, и это UIFeedbackGenerator
просто не будет ничего делать, если не поддерживается, но я не вижу, как это поможет мне, если я все еще хочу, чтобы он вибрировал, поскольку его методы не имеют никакого обратного вызова.
Обратите внимание, что вызов этих методов напрямую не влияет на тактику. Вместо этого он информирует систему о событии. Затем система определяет, следует ли воспроизводить тактильные сигналы, на основе устройства, состояния приложения, оставшегося заряда батареи и других факторов.
Например, тактильная обратная связь в настоящее время воспроизводится только:
На устройстве с поддерживаемым движком Taptic (iPhone 7 и iPhone 7 Plus).
Когда приложение работает на переднем плане.
Когда параметр System Haptics включен.
Как правило, доверяйте системе, чтобы определить, должна ли она воспроизводить обратную связь. Не проверяйте тип устройства или состояние приложения, чтобы вызвать условную обратную связь. После того, как вы определились, как вы хотите использовать обратную связь, всегда запускайте ее, когда происходят соответствующие события. Система игнорирует любые запросы, которые она не может выполнить.