Помогите разобраться с вибрацией


#1

Добрый день. Подскажите, как сделать вибрацию с определенной длительностью? Как вызвать стандартные вибрационные сигналы, я знаю. Методы типа: AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) не подходят. Можно ли сделать свои длительности вибрации?


#2

Можно еще так сделать

@available(iOS 10.0, *)
 DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
        for _ in 0...2000 {
        let generator = UIImpactFeedbackGenerator(style: .soft)
        generator.impactOccurred()
        }
    }

#3

Если делаете под iOS 13, то можете поиграться с CoreHaptics, там можно реализовать различные паттерны

https://developer.apple.com/documentation/corehaptics


#4

Благодарю за помощь, но это все равно не то, вибрация идет не постоянная, а пульсирующая. А очень нужна постоянная. CoreHaptics тоже не подходит, так как он работает только с 8-го iPhone.
Ведь в настройках можно же самому вибрацию сделать, вот интересует именно вот это. Как это реализовано. Нужно чтобы вибрации в приложении были цельными.


#5

Посмотрите это
https://www.hackingwithswift.com/example-code/core-haptics/how-to-play-custom-vibrations-using-core-haptics


#6

Это очень интересное решение, но оно не работает на iPhone 7 и ниже. А в настройках вибрацию можно в них настраивать.


#7

Сочувствую. Придется вам отказываться от этой затеи скорее всего.
На разных версиях iOS использовались разные API для работы с вибрацией, старые API уже deprecated и Apple с ними не пропускает в стор, некоторые API приватные, что так же не пустит вас в стор. Если для личного пользования, можно попробовать через jailbreak.
Вообще этот функционал у Apple числится как требовательный к батарее, поэтому Apple такое не любит когда используют.


#8

Понятно, благодарю за помощь. Нечто подобное я и думал.