在我的应用中,我正在通过以下方法安排本地通知:
func addNotificationRequest(fireDate: Date, identifier: String, sound: UNNotificationSound)
{
let notificationCenter = UNUserNotificationCenter.current()
let content = UNMutableNotificationContent()
content.title = "Important"
content.body = notificationMessage
content.sound = sound
content.categoryIdentifier = "UserActions"
let calendar = Calendar(identifier: .gregorian)
let triggerDate = calendar.dateComponents([.hour, .minute, .second], from: fireDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: true)
let notificationRequest = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
notificationCenter.add(notificationRequest) { error in
if let error = error
{
print(error.localizedDescription)
}
}
let myAction = UNNotificationAction(identifier: "MyActionID", title: "Open", options: [.foreground])
let category = UNNotificationCategory(identifier: "UserActions", actions: [myAction], intentIdentifiers: [], options: [])
notificationCenter.setNotificationCategories([category])
}
通知应在给定时间触发,并且每天应在同一时间重复。
在iOS 13上,我发现可以通过以下步骤重现的错误:
[也许有些人也发现了此错误,并且对如何修复有任何建议。任何帮助表示赞赏。
Starsky是正确的!
[Before尝试从您的应用程序安排本地通知,确保您的应用程序被授权这样做] >>,因为用户可以随时更改您的应用程序的授权设置。用户还可以更改应用程序允许的交互类型,这可能会导致您更改配置通知的方式。
如果禁用了权限,您将不得不“默默地失败”安排通知,或者通知用户他们需要进入“设置”应用以重新启用它们:
就我而言,我使用SwiftMessages做过这样的事情:
static func showNotificationDisabledInfo() {
print("INFO: Notification permissions denied, need to reset in Settings!")
showAlertMessage(withTitle: "Notifications are disabled!",
body: "Go to the Settings app to re-enable notifications.",
type: .info)
}