Vibrate iphone 7 с расширением службы уведомлений, но он не работает с iOS 12.1 в фоновом режиме
Я использую расширение службы уведомлений два раза, чтобы вибрировать устройство, включен фоновый режим, работает метод ниже iOS 11
& 12.0.1
но не работает в iOS 12.1
фоновые режимы ниже:
вот код:
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = bestAttemptContent {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.7) {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 1.4) {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
}
contentHandler(bestAttemptContent)
}
}
1 ответ
Я обнаружил, что это не будет работать, если настройки вибрации были выключены. (Перейдите в Системные настройки \ Звуки => Вибрация при звонке.)
Если вы отправляете push-уведомление со звуком и только значком, но без текстового оповещения, он будет воспроизводить звук, если ваш телефон не находится в беззвучном режиме, однако он НЕ будет воспроизводить звук, если он находится в беззвучном режиме.
Теперь, если вы добавите текстовое оповещение к этому уведомлению, оно будет воспроизводить звук даже в режиме вибрации.
Вокруг этого может быть проведено еще несколько испытаний. Например: если вы отправляете пользовательские пары ключ / значение, он воспроизводит звук? Точно сказать не могу.