本地通知会显示几天的某些内容

时间:2018-12-09 13:37:41

标签: ios swift notifications

在我的应用中,我实现了每天早上9点接收从数组中随机引用的通知的可能性。但是有时候,应用会在几天内向用户发送相同的报价。我使用myQuotes.randomElement()!用于接收随机报价。如何解决此问题?  这是代码:

//        MARK: Local notification

    let center = UNUserNotificationCenter.current()
    let options: UNAuthorizationOptions = [.alert, .sound];

    center.requestAuthorization(options: options) {
        (granted, error) in
        if !granted {
            print("Something went wrong")
        }
    }

    center.getNotificationSettings { (settings) in
        if settings.authorizationStatus != .authorized {
            // Notifications not allowed
        }
    }

    let content = UNMutableNotificationContent()
    content.title = "\(myTitle.randomElement()!)"
    content.body = "\(myQuotes.randomElement()!)"
    content.categoryIdentifier = "myQuotesNotification"

    content.sound = UNNotificationSound.default

    var date = DateComponents()
    date.hour = 9
    date.minute = 00
    let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

    let request = UNNotificationRequest(identifier: "myQuotesNotification", content: content, trigger: trigger)
    center.add(request)

1 个答案:

答案 0 :(得分:0)

您要安排相同的数组元素。了解更多通知限制。

您的代码非常适合日常提醒。记得。此代码一次被调用,这是用户安排通知的时间。例如。如果我们安排每日文字通知

我们的数组:[“burger”,”hamburger”,”pizza”]

请注意,我们每天都会尝试向用户通知数组中的随机单词,因此,Well Notifications无法正常工作。每次打开应用程序时,如果随机hamburger,我们的代码就会命中并安排时间表 被选中后,不可能进行更改而无需先打开应用并让调度程序正常工作,然后使用另一个随机元素重新调度通知

对于您的情况,我建议您进行远程通知,或者在未来几天使用唯一标识符安排通知。

我希望这很清楚。