2

これと同じ問題に対処する記事がいくつかありますが、(私が見た限りでは) それらはすべて 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)
        }
    }
}
4

1 に答える 1