如何显示多个本地通知?

Posted

技术标签:

【中文标题】如何显示多个本地通知?【英文标题】:How to show multiple local notifications? 【发布时间】:2018-06-20 11:40:46 【问题描述】:

我有一个消息应用程序,我正在使用VoIP notifications 向用户发送确认。每次调用 PushKit delegate 时,我都会触发本地通知。

当前的情况是之前的通知被删除并被新的通知取代。有没有办法管理本地通知,以便用户可以在他们的设备中看到多个通知?

这是我尝试过的代码:

let notificationContent = UNMutableNotificationContent()
notificationContent.title = "Title"
notificationContent.subtitle = "Subtitle"
notificationContent.body = "Body"

// Add Trigger
let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.01, repeats: false)

// Create Notification Request
let notificationRequest = UNNotificationRequest(identifier: "cocoacasts_local_notification", content: notificationContent, trigger: notificationTrigger)

// Add Request to User Notification Center
UNUserNotificationCenter.current().add(notificationRequest)  (error) in
  if let error = error 
    print("Unable to Add Notification Request (\(error), \(error.localizedDescription))")
       
   

P.S : 我不想在以后安排本地通知

【问题讨论】:

【参考方案1】:

使用for循环注册多个Notification,唯一标识为https://developer.apple.com/documentation/usernotifications/unnotificationrequest/1649634-identifier?language=objc

let notificationRequest = UNNotificationRequest(identifier: "cocoacasts_local_notification", content: notificationContent, trigger: notificationTrigger)

您应该更改此标识符“cocoacasts_local_notification”以动态重置唯一标识符

 let notification = UNMutableNotificationContent()
        let notificationTrigger = UNCalendarNotificationTrigger(dateMatching: dayComponent, repeats: true)
                        let lnMessageId:String = messageDict["Id"] as! String
                        let dayRequest = UNNotificationRequest(identifier: lnMessageId , content: notification, trigger: notificationTrigger)
                        UNUserNotificationCenter.current().add(dayRequest, withCompletionHandler: (_ error: Error?) -> Void in
                            if error == nil
                            
                                //print("success")
                            
                            else
                            
                                //print("UNUserNotificationCenter Error : \(String(describing: error?.localizedDescription))")
                            
                        )

【讨论】:

以上是关于如何显示多个本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 AppDelegate 上设置多个本地通知?

Swift:多个本地通知,但只显示最新的

本地通知默认不显示在通知中心

如何在 ionic 4 中使用电容器进行本地通知,在通知中显示图标和图像“不是科尔多瓦本地通知”

Iphone 多个本地通知

当应用程序处于前台时如何显示本地通知