Как сохранить звучание UNUserNotificationCenter, пока пользователь не остановит его - PullRequest
0 голосов
/ 22 сентября 2018

Есть несколько статей, посвященных этой же проблеме, но (из того, что я видел), они все 4 года назад и в Objective-C.Я работаю со Swift 4.2.

Я делаю приложение таймера обратного отсчета.Пока приложение находится в фоновом режиме, а таймер истекает, я хочу, чтобы звук уведомления продолжал воспроизводиться, пока пользователь не остановит его, нажав на уведомление.

Пока что то, что у меня есть, воспроизводит звуковой сигнал только один раз с фона / экрана блокировки.

Вот метод, с которым я работаю.

func notifications(title: String, message: String){

    center.delegate = self

    let restartAction = UNNotificationAction(identifier: "RESTART_ACTION", title: "Restart timer", options: UNNotificationActionOptions(rawValue: 0))

    let stopAction = UNNotificationAction(identifier: "STOP_ACTION", title: "Stop", options: UNNotificationActionOptions(rawValue: 0))

    let expiredCategory = UNNotificationCategory(identifier: "TIMER_EXPIRED", actions: [restartAction, stopAction], intentIdentifiers: [], options: UNNotificationCategoryOptions(rawValue: 0))

    // Register the notification categories.
    center.setNotificationCategories([expiredCategory])

    let content = UNMutableNotificationContent()
    content.title = title
    content.body = message
    content.categoryIdentifier = "TIMER_EXPIRED"
    content.sound = UNNotificationSound(named:UNNotificationSoundName(rawValue: _currentTimer.getSoundEffect+".mp3"))

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval(_currentTimer.endTime), repeats: false)
    let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)

    center.add(request) { (error : Error?) in
        if let theError = error {
            print(theError.localizedDescription)
        }
    }
}

1 Ответ

0 голосов
/ 29 сентября 2018

Итак, ответ, на котором я собираюсь остановиться, заключается в том, что ответа нет.Apple не хочет, чтобы сторонние разработчики воспроизводили звуки уведомлений дольше 30 секунд ни при каких обстоятельствах, даже если это является созданием приложения для таймера.Их таймер в приложении «Часы» сработает, пока вы его не отключите, но сторонним разработчикам не разрешено это делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...