web-dev-qa-db-fra.com

afficher les notifications dans chrome

J'écris ma première extension chrome. Dans mon extension chrome j'ai ajouté une option dans le menu contextuel du clic droit).

chrome.contextMenus.create({
  "id": "MyExntesion",
  "title": "My Extension",
  "type": "normal",
  "contexts": ["image"],
  "onclick": this.handleClick
});

Dans ma méthode handleClick, je veux afficher une notification. Cette notification devrait apparaître dans le coin supérieur droit de la fenêtre du navigateur, ce qui confirme simplement que l'utilisateur a cliqué sur le menu contextuel. Comment je fais ça?

J'ai fait des recherches mais je n'ai rien trouvé d'utile. https://developer.chrome.com/extensions/notifications cela parle de notification de la barre d'état système, où cela https://developer.chrome.com/extensions/browserAction#method- setPopup vous permet de créer de nouvelles fenêtres contextuelles mais elles ne s'affichent que lorsque vous cliquez sur l'icône d'extension.

13
sublime

Il existe 3 façons principales d'afficher une notification dans Chrome.

1) Ci-dessus chrome.notifications API . Il montrera un toast (pas simplement une indication dans la barre d'état système), mais vous, en tant que développeur, avez peu de mot à dire sur la façon dont il apparaît. Aperçu de l'utilisation ici .

Chrome notification

2) HTML standard API de notification . Dans Chrome, ressemble à chrome.notifications, sauf pour moins de contrôle sur la mise en forme et non géré par le centre de notifications de Chrome. Aperçu de l'utilisation ici .

3) Si vous voulez vraiment contrôler la façon dont il est affiché, le moyen le plus invasif et le plus difficile consiste à injecter votre interface utilisateur dans toutes les pages avec un script de contenu.

Si vous faites cela, vous rencontrez plusieurs problèmes:

  • En général, il est plus difficile de concevoir vous-même l'interface utilisateur;
  • L'interface utilisateur sera limitée à la fenêtre d'affichage de la page Web;
  • CSS peut saigner de la page et modifier votre interface utilisateur (bien que Shadow DOM puisse être une réponse);
  • Vous avez besoin d'autorisations générales pour les "données sur toutes les pages Web" juste pour afficher votre interface utilisateur. Cela a tendance à effrayer les utilisateurs.

Si vous décidez néanmoins d'emprunter cette voie, voici une question qui pourrait vous aider: interface utilisateur personnalisée des scripts de contenu de l'extension Chrome

33
Xan