6
votes

Les notifications locales ne tirent pas dans iOS10

J'utilise UnusernotificationCenter pour iOS 10. Pour tester, je définit une notification locale pendant 10 secondes à partir de l'heure actuelle.

C'est ce que j'ai essayé, < Pré> xxx

Je peux voir le journal "Notification locale a réussi". Mais la notification locale ne tire pas dans l'appareil.

in appdelegate, j'ai ajouté xxx

Qu'est-ce que j'ai mal fait? Pourquoi les notifications de l'application non licenciées?


10 commentaires

Stackoverflow.com / Questions / 37807302 / ...


Vérifiez votre périphérique Time and TRIGGERTime - Stackoverflow.com/Questtions/39941778/...


Avez-vous activé des notifications push à partir des paramètres Xcode?


@Sanjuju, que dois-je vérifier auprès du périphérique? J'ai donné 10 secondes ajoutantInterval à Nsdate ....


@Stefan, est-il nécessaire de activer les notifications push? J'utilise juste des notifications locales


Vous avez défini le temps de feu comme 10 secondes à l'avenir. Vous mettez-vous l'application à l'arrière-plan dans les 10 secondes de la notification prévue? Sinon, la notification ne sera pas affichée à l'écran, elle sera transmise à votre délégué de votre application (où vous devez le gérer vous-même). Mettez un point d'arrêt dans votre application de déléguée à Application: DidrecEivelocalNotification: Pour vérifier.


@Norders, j'ai ajouté des méthodes de déléguée dans le fichier Appdelegate. Et j'ai également mis mon application en arrière-plan avant 10 secondes et quitter l'application. Notification non tirée. Même j'ai essayé 20 secondes ...


Pour NsdatEcomponents, essayez: NsdatEcomponents * Composants = [Composants du calendrier: NSYARCALENDARUNIT | NSMONTHCALENDARUNIT | NSDAYCALEN DARUNIT | NSMINUTCALEND ARUNIT | NSMINUTECALEN DARUNIT | NSSECONDCALE NDARUNIT | NSSECONDCALE ALENDARUNIT DEDATEDDINGTIM: 10]];


@Jamshedalam, oui ça marche ... merci. Vous pouvez poster cela comme une réponse pour me permettre d'accepter ...


De rien. @Nazik


3 Réponses :


9
votes

SET NSDATECOMONOSANTS similaires:

NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond|NSCalendarUnitTimeZone fromDate:[[NSDate date] dateByAddingTimeInterval:10]];


5 commentaires

Impossible de définir Plusieurs notifications ....


Il semble que vous devez créer les composants de la date du calendrier Datecoments (composants: définir , à partir de la date: date) fonction. Initialiser les composants de la date de l'un des autres calendrier datecoments ... Les fonctions ne semble pas planifier la notification. (Swift 3)


@Nazik, comment avez-vous fait fonctionner pour une notification multiple? Je suis coincé sur le même problème. S'il vous plaît avoir un look: Stackoverflow.com/Questtions/44132879/...


Merci mec. Regardé partout et seule cette solution a fonctionné.


OMG @LOP_LUKE, j'ai passé des siècles à essayer de déterminer pourquoi mes notifications par ailleurs irrévertiques n'étaient pas programmées, et cette réponse et votre commentaire résolu! J'utilisais le mauvais datecomenents fonction. Qui savait qu'il y avait une telle chose. Merci.



0
votes

ou utiliser un déclencheur de temps au lieu d'un déclencheur de calendrier


0 commentaires

-1
votes
@IBAction func sendNotification(_ sender: Any) {

    let content = UNMutableNotificationContent()
    content.title = "Hello"
    content.body = "Ved Rauniyar !!!"
   // content.badge = 1
    content.sound = UNNotificationSound.default()
    // Deliver the notification in five seconds.
    let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 5, repeats: false)
    let url = Bundle.main.url(forResource:"ved", withExtension: "png")
    let attachment = try? UNNotificationAttachment(identifier: "FiveSecond",
                                                   url: url!,
                                                   options: [:])
    content.attachments = [attachment!]
    let request = UNNotificationRequest.init(identifier: "FiveSecond", content: content, trigger: trigger)
    // Schedule the notification.
    let center = UNUserNotificationCenter.current()
    center.add(request) { (error) in
       // print(error!)
    }
}

0 commentaires