Расписание уведомления не работает для приложения тревоги - PullRequest
0 голосов
/ 06 февраля 2019

Здравствуйте, я пытаюсь сделать приложение Alram для этого я использую Расписание уведомления, используя этот пост https://stackoverflow.com/a/53902489 я установил время, но ничего не получаю, я хочу установить время и напомнить что-то и звонить в определенное время

    scheduleNotification(at: createDate(date : 6, month : 2, hour: 17, minute: 15, year: 2019), identifierUnic: stringUUID(), body: "Notification day", titles: "Notification titles1")


      func createDate(date: Int, month : Int, hour: Int, minute: Int, year: Int)->Date {

            var components = DateComponents()
            components.hour = hour
            components.minute = minute
            components.year = year
            components.day = date
            components.month = month

            components.timeZone = .current

            let calendar = Calendar(identifier: .gregorian)
            return calendar.date(from: components)!
        }


   func scheduleNotification(at date: Date, identifierUnic : String, body: String, titles:String) {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in }

         var anniversary = DateComponents()
        anniversary.day = 6
        anniversary.month = 2
        anniversary.hour = 5
        anniversary.minute = 44
        anniversary.second = 0

        let trigger = UNCalendarNotificationTrigger(dateMatching: anniversary, repeats: true)
        let content = UNMutableNotificationContent()
        content.title = titles
        content.body = body
        content.sound = UNNotificationSound.default
        content.categoryIdentifier = identifierUnic

        let request = UNNotificationRequest(identifier: identifierUnic, content: content, trigger: trigger)

        UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate

        UNUserNotificationCenter.current().add(request) {(error) in
            if let error = error {
                print(" We had an error: \(error)")
            }}
    }


      func registerLocal() {
            let center = UNUserNotificationCenter.current()

            center.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
                if granted {
                    print("Yay!")
                } else {
                    print("D'oh")
                }
            }
        }

1 Ответ

0 голосов
/ 06 февраля 2019

Можете ли вы попытаться создать уникальный идентификатор для вашего запроса и добавить свое уведомление с этим.

Вот мое уведомление, и для меня это хорошо работает

  1. Создать центр и проверить для авторизации

    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .sound]) {
        (granted, error) in
    }
    
  2. Создать контент

    let content = UNMutableNotificationContent()
    content.title = "Title"
    content.subtitle = "Subtitle."
    content.body = "Body"
    
  3. Создать компоненты даты

    var anniversary = DateComponents()
    anniversary.day = 1
    anniversary.month = 1
    anniversary.hour = 12
    anniversary.minute = 0
    anniversary.second = 0
    
  4. Создать триггер

    let trigger = UNCalendarNotificationTrigger(dateMatching: anniversary, repeats: true)
    
  5. Создать уникальный идентификатор и запрос

    let uuid = UUID().uuidString
    let request = UNNotificationRequest(identifier: uuid, content: content, trigger: trigger)
    
  6. Добавить ваш запрос в центри обработать вашу ошибку

    center.add(request) {
        (error) in
       //Write your handle function here..
       //print(error) for example
    }
    

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...