Comment utilise-t-on notifications de bureau Chrome ? J'aimerais que cela soit utilisé dans mon propre code.
Mise à jour : Voici n article de blog expliquant les notifications du kit Web à l'aide d'un exemple.
Dans les navigateurs modernes, il existe deux types de notifications:
L'appel d'API utilise les mêmes paramètres (à l'exception des actions - non disponibles dans les notifications de poste de travail), qui sont bien documentés sur MDN et pour les prestataires de services, sur Web Fundamentals de Google = site.
Vous trouverez ci-dessous un exemple de travail de burea notifications pour Chrome, Firefox, Opera et Safari. Notez que pour des raisons de sécurité, en commençant par Chrome 62, l'autorisation de l'API de notification peut ne plus être demandée à un iframe d'origine croisée , nous ne pouvons donc pas le démontrer à l'aide de StackOverflow. extraits de code. Vous devrez enregistrer cet exemple dans un fichier HTML sur votre site/application et assurez-vous d'utiliser localhost://
ou HTTPS.
// request permission on page load
document.addEventListener('DOMContentLoaded', function() {
if (!Notification) {
alert('Desktop notifications not available in your browser. Try Chromium.');
return;
}
if (Notification.permission !== 'granted')
Notification.requestPermission();
});
function notifyMe() {
if (Notification.permission !== 'granted')
Notification.requestPermission();
else {
var notification = new Notification('Notification title', {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: 'Hey there! You\'ve been notified!',
});
notification.onclick = function() {
window.open('http://stackoverflow.com/a/13328397/1269037');
};
}
}
<button onclick="notifyMe()">Notify me!</button>
Nous utilisons l'API Notifications W3C . Ne confondez pas ceci avec l'API de notifications Chrome extensions , qui est différent. _ Les notifications d'extension Chrome ne fonctionnent évidemment que dans les extensions Chrome et ne nécessitent aucune autorisation spéciale de l'utilisateur.
Les notifications W3C fonctionnent dans de nombreux navigateurs (voir l’assistance technique sur caniuse ) et nécessitent l’autorisation de l’utilisateur. À titre de pratique exemplaire, ne demandez pas cette autorisation immédiatement. Expliquez d'abord à l'utilisateur pourquoi il veut des notifications et voyez-en d'autres modèles de notifications Push .
Notez que Chrome ne respecte pas l'icône de notification sous Linux en raison de ce bogue .
La prise en charge des notifications a été en constante évolution, diverses API étant obsolètes au cours des dernières années. Si vous êtes curieux, vérifiez les modifications précédentes de cette réponse pour voir ce qui fonctionnait auparavant dans Chrome et pour apprendre l'histoire des notifications HTML riches.
Le dernier standard est maintenant https://notifications.spec.whatwg.org/ .
Pourquoi deux appels différents vont-ils dans le même sens, selon que vous travaillez chez un prestataire de services ou pas - voir ce ticket que j'ai classé pendant que je travaillais chez Google .
Voir aussi notify.js pour une bibliothèque d'assistance.
Vérifiez la conception et la spécification de l'API (c'est toujours un brouillon) ou vérifiez la source de (page n'est plus disponible) pour un exemple simple: Il s'agit principalement d'un appel à window.webkitNotifications.createNotification
.
Si vous souhaitez un exemple plus robuste (vous essayez de créer votre propre extension Google Chrome et souhaitez savoir comment gérer les autorisations, le stockage local, etc.), consultez Gmail Notifier. Extension : téléchargez le fichier crx au lieu de l’installer, décompressez-le et lisez son code source.
Il semble que window.webkitNotifications
ait déjà été obsolète et supprimé. Cependant, il existe une nouvelle API , et elle semble également fonctionner dans la dernière version de Firefox.
function notifyMe() {
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
alert("This browser does not support desktop notification");
}
// Let's check if the user is okay to get some notification
else if (Notification.permission === "granted") {
// If it's okay let's create a notification
var notification = new Notification("Hi there!");
}
// Otherwise, we need to ask the user for permission
// Note, Chrome does not implement the permission static property
// So we have to check for NOT 'denied' instead of 'default'
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// Whatever the user answers, we make sure we store the information
if(!('permission' in Notification)) {
Notification.permission = permission;
}
// If the user is okay, let's create a notification
if (permission === "granted") {
var notification = new Notification("Hi there!");
}
});
} else {
alert(`Permission is ${Notification.permission}`);
}
}
J'aime: http://www.html5rocks.com/fr/tutorials/notifications/quick/#toc-examples mais il utilise d'anciennes variables pour que la démo ne fonctionne plus. webkitNotifications
est maintenant Notification
.
J'ai fait ce simple emballage de notification. Cela fonctionne sur Chrome, Safari et Firefox.
Probablement sur Opera, IE et Edge également, mais je ne l'ai pas encore testé.
Récupérez simplement le fichier notify.js à partir d’ici https://github.com/gravmatt/js-notify et mettez-le dans votre page.
Obtenez-le sur Bower
$ bower install js-notify
Voilà comment cela fonctionne:
notify('title', {
body: 'Notification Text',
icon: 'path/to/image.png',
onclick: function(e) {}, // e -> Notification object
onclose: function(e) {},
ondenied: function(e) {}
});
Vous devez définir le titre mais l’objet json comme second argument est facultatif.
<!DOCTYPE html>
<html>
<head>
<title>Hello!</title>
<script>
function notify(){
if (Notification.permission !== "granted") {
Notification.requestPermission();
}
else{
var notification = new Notification('hello', {
body: "Hey there!",
});
notification.onclick = function () {
window.open("http://google.com");
};
}
}
</script>
</head>
<body>
<button onclick="notify()">Notify</button>
</body>
Voici la documentation de Nice sur les API,
https://developer.chrome.com/apps/notifications
Et, explication vidéo officielle par Google,
Notify.js encapsule les nouvelles notifications du kit Web. Ça marche plutôt bien.
http://alxgbsn.co.uk/2013/02/20/notify-js-a-handy-wrapper-for-the-web-notifications-api/