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-уведомление со звуком и только значком, но без текстового оповещения, он будет воспроизводить звук, если ваш телефон не находится в беззвучном режиме, однако он НЕ будет воспроизводить звук, если он находится в беззвучном режиме.

Теперь, если вы добавите текстовое оповещение к этому уведомлению, оно будет воспроизводить звук даже в режиме вибрации.

Вокруг этого может быть проведено еще несколько испытаний. Например: если вы отправляете пользовательские пары ключ / значение, он воспроизводит звук? Точно сказать не могу.

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