


API des notifications Web: Faites des notifications de site Web sur les restrictions du navigateur
Nous sommes habitués aux notifications mobiles des sites Web ou applications préférés, mais maintenant il devient plus courant pour les navigateurs de pousser directement les notifications. Par exemple, Facebook enverra des notifications lorsque vous avez une nouvelle demande d'ami ou que quelqu'un commente un message auquel vous participez; Slack enverra des notifications dans les conversations que vous êtes mentionné.
En tant que développeur frontal, je suis curieux de savoir comment utiliser les notifications de navigateur pour servir des sites Web qui ne gèrent pas beaucoup de flux d'informations. Comment ajouter des notifications de navigateur pertinentes basées sur l'intérêt des visiteurs pour le site Web?
Cet article montrera comment implémenter un système de notification sur le site Web concis CSS pour alerter les visiteurs chaque fois qu'une nouvelle version du cadre est publiée. Je vais montrer comment utiliser l'API LocalStorage et Navigateur pour y parvenir.
Notification API Basics
Tout d'abord, nous devons déterminer si le navigateur du visiteur prend en charge les notifications. La plupart des travaux de ce tutoriel seront effectués par l'objet de notification.
(function() { if ("Notification" in window) { // 代码在此处 } })();
À l'heure actuelle, nous déterminons seulement si le navigateur prend en charge les notifications. Après avoir confirmé, nous devons savoir si nous pouvons afficher les demandes d'autorisation aux visiteurs.
Nous stockons la sortie de la propriété d'autorisation dans une variable. Si l'autorisation a été accordée ou refusée, rien n'est retourné. Si nous n'avons pas demandé d'autorisations auparavant, nous utilisons la méthode RequestPermission pour demander des autorisations.
(function() { if ("Notification" in window) { var permission = Notification.permission; if (permission === "denied" || permission === "granted") { return; } Notification.requestPermission(); } })();
Vous devriez voir des invites similaires à l'image ci-dessus dans votre navigateur.
Maintenant que nous avons demandé des autorisations, modifions le code afin que la notification soit affichée si les autorisations sont autorisées:
(function() { if ("Notification" in window) { var permission = Notification.permission; if (permission === "denied" || permission === "granted") { return; } Notification .requestPermission() .then(function() { var notification = new Notification("Hello, world!"); }); } })();
Bien que simple, il a une fonction efficace.
Nous utilisons ici la syntaxe basée sur les promesses de la méthode RequestPermission () pour afficher les notifications après l'autorisation. Nous utilisons le constructeur de notification pour afficher les notifications. Ce constructeur prend deux arguments, l'un pour le titre de notification et l'autre pour les options. Veuillez vous référer au lien de documentation pour une liste complète des options qui peuvent être adoptées.
Version du framework de stockage
ci-dessus, nous utiliserons LocalStorage pour aider à afficher les notifications. L'utilisation de LocalStorage est un moyen recommandé de stocker les informations persistantes du client en JavaScript. Nous allons créer une clé localStorage appelée concisionversion qui contient la version actuelle du framework (par exemple 1.0.0). Nous pouvons ensuite utiliser cette clé pour vérifier une nouvelle version du framework.
Comment mettre à jour la valeur de la touche Concisionion en utilisant la dernière version du framework? Nous avons besoin d'un moyen de définir la version actuelle lorsque quelqu'un visite un site Web. Nous devons également mettre à jour la valeur lorsqu'une nouvelle version est publiée. Chaque fois que la valeur ConcisionVersion change, une notification doit être affichée aux visiteurs pour annoncer une nouvelle version du cadre.
Nous résoudrons ce problème en ajoutant un élément caché à la page. Cet élément aura une classe nommée JS-CurrentVersion et ne contiendra que la version actuelle du cadre. Étant donné que cet élément existe dans le DOM, nous pouvons facilement interagir avec lui en utilisant JavaScript.
Cet élément caché sera utilisé pour stocker la version Framework dans notre touche Concisionion. Nous utiliserons également cet élément pour mettre à jour la clé lorsqu'une nouvelle version du framework sera publiée.
(function() { if ("Notification" in window) { // 代码在此处 } })();
Nous pouvons utiliser une petite quantité de CSS pour cacher cet élément:
(function() { if ("Notification" in window) { var permission = Notification.permission; if (permission === "denied" || permission === "granted") { return; } Notification.requestPermission(); } })();
Remarque: comme cet élément ne contient rien de significatif, les lecteurs d'écran n'ont pas besoin d'accéder à cet élément. C'est pourquoi j'ai défini la propriété hidden Aria sur true et j'utilise l'affichage: aucune comme méthode pour masquer les éléments. Pour plus d'informations sur le contenu caché, consultez cet article Webaim.
Maintenant, nous pouvons obtenir cet élément et interagir avec lui dans JavaScript. Nous devons écrire une fonction pour retourner le texte à l'intérieur de l'élément caché que nous venons de créer.
(function() { if ("Notification" in window) { var permission = Notification.permission; if (permission === "denied" || permission === "granted") { return; } Notification .requestPermission() .then(function() { var notification = new Notification("Hello, world!"); }); } })();
Cette fonction utilise la propriété TextContent pour stocker le contenu de l'élément .js-Currention. Ajoutons une autre variable pour stocker le contenu de la touche LocalStorage Conceseversion.
<span class="js-currentVersion" aria-hidden="true">3.4.0</span>
Maintenant, nous avons la dernière version du framework dans une variable et nous stockons la clé LocalStorage en une variable. Il est temps d'ajouter une logique pour déterminer s'il existe une nouvelle version du cadre disponible.
Nous vérifions d'abord si la clé de concision existe. S'il n'existe pas, nous montrerons la notification à l'utilisateur car il peut s'agir de leur première visite. Si la clé existe, nous vérifions si sa valeur (stockée dans la variable CurrentVersion) est supérieure à la valeur de la version actuelle (stockée dans la variable de VERVERSION). Si la dernière version du cadre est plus grande que la dernière version vue par le visiteur, nous savons que la nouvelle version a été publiée.
Remarque: nous utilisons la bibliothèque Semver-Compare pour gérer la comparaison de deux chaînes de version.
Après avoir su cela, nous montrerons la notification aux visiteurs et mettrons à jour notre clé de concision de manière appropriée.
[aria-hidden="true"] { display: none; visibility: hidden; }
Pour utiliser cette fonction, nous devons modifier le code d'autorisation suivant.
function checkVersion() { var latestVersion = document.querySelector(".js-currentVersion").textContent; }
Cela nous permet d'afficher les notifications lorsque l'utilisateur a accordé des autorisations avant ou simplement les autorisations.
Afficher la notification
Jusqu'à présent, nous n'avons montré que des notifications simples des utilisateurs qui ne contiennent pas beaucoup d'informations. Écrivons une fonction qui nous permet de créer dynamiquement les notifications de navigateur et de contrôler de nombreux aspects différents des notifications.
Cette fonction a des paramètres pour le texte du corps, l'icône, le titre et la durée de liaison et de notification facultative. En interne, nous créons un objet d'option pour stocker notre texte et nos icônes de notification. Nous créons également une nouvelle instance de l'objet de notification, passant dans notre titre de notification ainsi que l'objet Option.
Ensuite, si nous voulons créer un lien vers nos notifications, nous ajouterons un gestionnaire OnClick. Nous utilisons SetTimeout () pour désactiver les notifications après une heure spécifiée. Si l'heure n'est pas spécifiée lorsque cette fonction est appelée, les cinq secondes par défaut sont utilisées.
(function() { if ("Notification" in window) { // 代码在此处 } })();
Maintenant, modifions CheckVersion () pour afficher les notifications de plus d'informations à l'utilisateur.
(function() { if ("Notification" in window) { var permission = Notification.permission; if (permission === "denied" || permission === "granted") { return; } Notification.requestPermission(); } })();
Nous utilisons la fonction DisplayNotification pour fournir une description, une image, un titre et un lien vers nos notifications.
Remarque: nous utilisons des littéraux de modèle ES6 pour intégrer des expressions dans notre texte.
Code complet et test
Ce qui suit est le code complet écrit dans ce tutoriel.
(Lien Codepen ou le bloc de code complet doit être inséré ici)
L'exécution de ce code devrait générer la notification suivante dans votre navigateur.
Pour effectuer des tests, vous devez vous familiariser avec les autorisations de notification de votre navigateur. Voici quelques références rapides à la gestion des notifications dans Google Chrome, Safari, Firefox et Microsoft Edge. De plus, vous devez être familiarisé avec l'utilisation de la console du développeur pour supprimer et modifier les valeurs locales pour les tests faciles.
Vous pouvez tester l'exemple en exécutant le script une fois et en modifiant la valeur de l'élément HTML JS-CurrentSion vers le script pour voir la différence. Vous pouvez également relancer avec la même version pour confirmer que vous ne recevrez pas de notifications inutiles.
aller un peu plus loin
C'est tout ce dont nous avons besoin pour avoir des notifications de navigateur dynamique! Si vous recherchez des notifications de navigateur plus flexibles, il est recommandé de comprendre l'API des travailleurs de service. Le travailleur des services peut être utilisé pour répondre aux notifications push, permettant aux utilisateurs de recevoir des notifications, qu'ils visitent actuellement votre site Web, permettant ainsi des mises à jour plus opportunes.
API de notification du navigateur FAQ
Qu'est-ce que l'API de notification du navigateur et comment cela fonctionne-t-il?
L'API de notification du navigateur permet aux applications Web d'afficher les notifications système aux utilisateurs. Ces notifications sont similaires aux notifications push sur les appareils mobiles et peuvent être affichées même si la page Web n'est pas au point. L'API fonctionne en demandant des autorisations utilisateur pour afficher les notifications. Une fois l'autorisation obtenue, les applications Web peuvent créer et afficher des notifications à l'aide d'objets de notification.
Comment demander l'autorisation d'afficher les notifications?
Pour demander l'autorisation, vous pouvez utiliser la méthode notification.requestPermission (). Cette méthode affichera à l'utilisateur une boîte de dialogue lui demandant s'il permettra de s'afficher des notifications. Cette méthode renvoie une promesse, qui se résout en un statut d'autorisation, qui peut être "accordé", "refusé" ou "par défaut".
Comment créer et afficher des notifications?
Une fois l'autorisation obtenue, des notifications peuvent être créées et affichées à l'aide du constructeur de notification. Ce constructeur accepte deux paramètres: le titre de la notification et un objet d'option. L'objet d'option peut contenir des propriétés telles que le corps (le texte de la notification), l'icône (l'icône à afficher) et la balise (l'identifiant de la notification).
Puis-je afficher les notifications même si la page Web n'est pas au point?
Oui, l'API de notification du navigateur vous permet d'afficher les notifications même si la page Web n'est pas au point. Ceci est très utile pour les applications Web qui doivent informer les utilisateurs d'événements importants, même s'ils n'utilisent pas activement l'application.
Comment gérer les événements de clic sur les notifications?
Vous pouvez gérer les événements de clic sur les notifications en ajoutant un écouteur d'événements à l'objet de notification. Lorsque l'utilisateur clique sur la notification, la fonction d'écoute d'événements est appelée.
Puis-je désactiver les notifications par programme?
Oui, vous pouvez fermer par programme les notifications en appelant la méthode close () sur l'objet de notification. Ceci est utile si vous souhaitez désactiver automatiquement les notifications après un certain temps.
Tous les navigateurs prennent-ils en charge les notifications du navigateur?
La plupart des navigateurs modernes prennent en charge les notifications du navigateur, notamment Chrome, Firefox, Safari et Edge. Cependant, le support peut varier entre différentes versions de ces navigateurs, et certains navigateurs plus âgés peuvent ne pas prendre en charge les notifications.
Puis-je personnaliser l'apparence des notifications?
L'apparition des notifications dépend fortement du système d'exploitation et du navigateur. Cependant, vous pouvez personnaliser certains aspects de la notification en utilisant l'objet Option transmis au constructeur de notification, tels que le titre, le texte du corps et les icônes.
Comment vérifier si l'utilisateur a accordé la permission d'afficher les notifications?
Vous pouvez vérifier l'état actuel de l'autorisation en accédant à la propriété Notification.Permission. Cette propriété sera "accordée" si l'utilisateur a accordé des autorisations; "refusée" si elle a refusé les autorisations, et "par défaut" s'il n'a pas répondu aux demandes d'autorisation.
Puis-je utiliser l'API de notification du navigateur dans mon script de travail?
Oui, l'API de notification du navigateur peut être utilisée dans le script de travail. Cela vous permet d'afficher les notifications à partir des tâches d'arrière-plan, même si la page principale n'est pas au point.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Ce tutoriel vous montre comment intégrer une API de recherche Google personnalisée dans votre blog ou site Web, offrant une expérience de recherche plus raffinée que les fonctions de recherche de thème WordPress standard. C'est étonnamment facile! Vous pourrez restreindre les recherches à Y

Vous voici donc, prêt à tout savoir sur cette chose appelée Ajax. Mais qu'est-ce que c'est exactement? Le terme Ajax fait référence à un regroupement lâche de technologies utilisées pour créer un contenu Web interactif dynamique. Le terme Ajax, inventé à l'origine par Jesse J

Cette série d'articles a été réécrite à la mi-2017 avec des informations à jour et de nouveaux exemples. Dans cet exemple JSON, nous examinerons comment nous pouvons stocker des valeurs simples dans un fichier à l'aide du format JSON. En utilisant la notation de paire de valeurs clés, nous pouvons stocker n'importe quel type

Améliorez votre présentation de code: 10 surligneurs de syntaxe pour les développeurs Partager des extraits de code sur votre site Web ou votre blog est une pratique courante pour les développeurs. Le choix du bon surligneur de syntaxe peut améliorer considérablement la lisibilité et l'attrait visuel. T

Tirez parti de jQuery pour les dispositions de page Web sans effort: 8 plugins essentiels JQuery simplifie considérablement la mise en page de la page Web. Cet article met en évidence huit puissants plugins jQuery qui rationalisent le processus, particulièrement utile pour la création de sites Web manuels

Cet article présente une sélection organisée de plus de 10 didacticiels sur les cadres JavaScript et JQuery Model-View-Controller (MVC), parfait pour augmenter vos compétences en développement Web au cours de la nouvelle année. Ces tutoriels couvrent une gamme de sujets, de Foundatio

Points de base Ceci dans JavaScript fait généralement référence à un objet qui "possède" la méthode, mais cela dépend de la façon dont la fonction est appelée. Lorsqu'il n'y a pas d'objet actuel, cela fait référence à l'objet global. Dans un navigateur Web, il est représenté par Window. Lorsque vous appelez une fonction, cela maintient l'objet global; mais lors de l'appel d'un constructeur d'objets ou de l'une de ses méthodes, cela fait référence à une instance de l'objet. Vous pouvez modifier le contexte de ceci en utilisant des méthodes telles que Call (), Appliquer () et Bind (). Ces méthodes appellent la fonction en utilisant la valeur et les paramètres donnés. JavaScript est un excellent langage de programmation. Il y a quelques années, cette phrase était


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP
