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
}