Faire apparaître des notification JS à dates et heure précise ?
Fermé
PI3RR1CK
-
1 sept. 2016 à 19:31
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 10 sept. 2016 à 16:20
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 10 sept. 2016 à 16:20
A voir également:
- Faire apparaître des notification JS à dates et heure précise ?
- Apparaitre hors ligne instagram - Guide
- 35 go internet équivalent en heure ✓ - Forum Mobile
- 30 Go combien de temp d’internet - Forum Mobile
2 réponses
Utilisateur anonyme
1 sept. 2016 à 21:07
1 sept. 2016 à 21:07
Alors le premier problème est difficile à résoudre juste en JS, car le JS n'a pas de SESSION comme en PHP, tu peux à la limite enregistrer un cookie après avoir exécuter une fois la notification, donc à chaque fois vérifier que le cookie existe, et si oui on exécute pas le script, mais le problème c'est que si tu met un temps assez long, il se peut que l'utilisateur quitte le site et revient donc il verra pas pas la notif, et si c'est trop court il peut l'avoir à un rechargement.
Enfin à ta place je ferai ainsi:
Après les 30 minutes c'est arbitraire, par exemple une SESSION en PHP est active pendant 2heuires environ.
Après la mise à jour du cookie doit se faire sur chaque page car si l'utilisateur reste plus de 30 mins sur autres pages, et qu'il revient sur l’accueil il aura la notif.
Ici tu as la doc du Cookie en JS:
https://www.w3schools.com/JS/js_cookies.asp
Pour ta deuxième question, tu peux mettre un setTimeout
Comme ceci:
Donc là elle se fermera après une seconde, donc pour ça il faut mettre 5000 au lieu de 1000.
Après normalement elles se ferment seules après 30 secondes.
Pour la question 3, alors là déjà pour voir la notif, il faut que la personne soit sur ton site, après Facebook, arrive à afficher des notifs même sans être sur leur site, mais ça je vois pas comment faire, mais dans tout les cas il faut au moins le navigateur d'afficher.
Ensuite soit tu calcules la différence et donc fait un setTimeout avec la fonction qui affiche la notif en premier paramètre, et l'intervalle de temps en milliseconde pour le second paramètre, soit tu fait un setInterval d'une seconde avec dedans une condition qui vérifie que l'heure actuel c'est l'heure que tu veux, et que ça lance la fonction dans ce cas.
Après pour la 4 c'est comme la 1.
Enfin à ta place je ferai ainsi:
- Je vérifie que le cookie existe
- Si non, je lance la notif et créé le cookie, et le laisse pendant 30 minutes avant la destruction.
- Si oui je met à jour la date du cookie (donc +30minutes par rapport à l'heure actuel)
Après les 30 minutes c'est arbitraire, par exemple une SESSION en PHP est active pendant 2heuires environ.
Après la mise à jour du cookie doit se faire sur chaque page car si l'utilisateur reste plus de 30 mins sur autres pages, et qu'il revient sur l’accueil il aura la notif.
Ici tu as la doc du Cookie en JS:
https://www.w3schools.com/JS/js_cookies.asp
Pour ta deuxième question, tu peux mettre un setTimeout
Comme ceci:
if (window.Notification && Notification.permission === "granted") {
var notif = new Notification('test', {body: 'hello world! ', icon : 'monimage.png'});
setTimeout(notif.close.bind(notif), 1000);
}
Donc là elle se fermera après une seconde, donc pour ça il faut mettre 5000 au lieu de 1000.
Après normalement elles se ferment seules après 30 secondes.
Pour la question 3, alors là déjà pour voir la notif, il faut que la personne soit sur ton site, après Facebook, arrive à afficher des notifs même sans être sur leur site, mais ça je vois pas comment faire, mais dans tout les cas il faut au moins le navigateur d'afficher.
Ensuite soit tu calcules la différence et donc fait un setTimeout avec la fonction qui affiche la notif en premier paramètre, et l'intervalle de temps en milliseconde pour le second paramètre, soit tu fait un setInterval d'une seconde avec dedans une condition qui vérifie que l'heure actuel c'est l'heure que tu veux, et que ça lance la fonction dans ce cas.
Après pour la 4 c'est comme la 1.
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
10 sept. 2016 à 16:20
10 sept. 2016 à 16:20
Bonjour,
ZeNairolf,
La notion de Session existe en Javascript, elle est appelée sessionStorage: https://developer.mozilla.org/fr/docs/Web/API/Window/sessionStorage
PI3RR1CK,
je t'invite à regarder cet article qui te permettra de stocker des informations coté client.
le point 4: tu peux stocker l'info comme quoi l'utilisateur a déjà consulté ton site ou non et lui afficher le message de bienvenu le cas échéant.
le point 1: de la même manière, tu peux stocker l'information si l'utilisateur a déjà affiché la notification courante en ajoutant un statut display
le point 3: la meilleure solution pour te permettre d'afficher une notification en temps réel est d'utiliser webSocket : https://developer.mozilla.org/fr/docs/Web/API/WebSockets_API
ZeNairolf,
La notion de Session existe en Javascript, elle est appelée sessionStorage: https://developer.mozilla.org/fr/docs/Web/API/Window/sessionStorage
PI3RR1CK,
je t'invite à regarder cet article qui te permettra de stocker des informations coté client.
le point 4: tu peux stocker l'info comme quoi l'utilisateur a déjà consulté ton site ou non et lui afficher le message de bienvenu le cas échéant.
le point 1: de la même manière, tu peux stocker l'information si l'utilisateur a déjà affiché la notification courante en ajoutant un statut display
le point 3: la meilleure solution pour te permettre d'afficher une notification en temps réel est d'utiliser webSocket : https://developer.mozilla.org/fr/docs/Web/API/WebSockets_API