UNNotificationSound действителен, но случайный сбой, почему?

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

Я действительно хочу знать, почему...

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

Тогда вопрос должен быть в моей мелодии звонка, но почему он иногда звучит, а иногда не звонит?

устройство: iPhone X 11.2.6 я использую.caf длительность:27 с Аудио канал: 2 Частота дискретизации:48 000

мой код:

func addNotification(clockInfo: WYLClockInfo) -> Int{

    var num: Int = 0

    let content = UNMutableNotificationContent.init()
    content.title = clockInfo.title ?? "无内容"
    if (clockInfo.detail != nil){
        content.body = clockInfo.detail!
    }
    content.badge = NSNumber.init(value: UIApplication.shared.applicationIconBadgeNumber+1)

    let sound: UNNotificationSound = UNNotificationSound.init(named: "clock.caf")
    content.sound = sound

    let myCal:NSCalendar = NSCalendar.init(calendarIdentifier: .gregorian)!
    myCal.timeZone = NSTimeZone.system

    if checkAdvanceExpire(clockInfo: clockInfo) {
        addAdvanceNotification(clockInfo: clockInfo)
        num += 1
    }

    let comp:DateComponents = myCal.components([.year,.month,.day,.hour,.minute], from: clockInfo.endDate!)

    var components: DateComponents = DateComponents.init()
    components.timeZone = NSTimeZone.system
    components.year = comp.year!
    components.month = comp.month!
    components.day = comp.day!
    components.hour = comp.hour!
    components.minute = comp.minute!

    let trigger = UNCalendarNotificationTrigger.init(dateMatching: components, repeats: false)

    let request = UNNotificationRequest.init(identifier: "\(String(describing: clockInfo.timeID!))", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request) { (error) in
        if error != nil{
            pushAlert(str: error.debugDescription)
        }
    }
    num += 1

    addRepeatNotification(clockInfo: clockInfo)
    num += 2

    return num

}

0 ответов

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