web-dev-qa-db-ja.com

chrome拡張機能で通知を表示する

私は最初のchrome拡張機能を書いています。私のchrome拡張機能で、右クリックコンテキストメニューにオプションを追加しました。

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

私のhandleClickメソッドで、通知を表示したいと思います。この通知はブラウザウィンドウの右上隅に表示され、ユーザーがコンテキストメニューをクリックしたことを確認するだけです。それ、どうやったら出来るの?

私はいくつかの調査を行いましたが、有用なものは何も見つかりませんでした。 https://developer.chrome.com/extensions/notifications システムトレイの通知について説明しますが、ここでは https://developer.chrome.com/extensions/browserAction#method- setPopup を使用すると、新しいポップアップを作成できますが、それらは拡張アイコンをクリックしたときにのみ表示されます。

13
sublime

Chromeで通知を表示するには、主に3つの方法があります。

1)前述の chrome.notifications AP​​I 。トーストが表示されます(systrayの単なる表示ではありません)が、開発者としてのあなたはそれがどのように表示されるかについてほとんど言いません。使用法の概要 ここ

Chrome notification

2)標準HTML 通知API 。 Chromeでは、chrome.notificationsに似ていますが、フォーマットの制御が不十分で、Chromeの通知センターで管理されない点が異なります。使用法の概要 ここ

3)表示方法を本当に制御したい場合、最も侵略的で難しい方法は、コンテンツスクリプトを使用してすべてのページにUIを挿入することです。

その場合、いくつかの問題に直面します。

  • 一般的に、UIを自分で設計することは困難です。
  • UIはWebページビューポートに限定されます。
  • CSSがページからにじみ、UIを壊す可能性があります(ただし、Shadow DOMが答えになる場合があります)。
  • UIを表示するためだけに、「すべてのWebページのデータ」に対する包括的な権限が必要です。ユーザーを怖がらせる傾向があります。

それでもそのルートを選択する場合は、次の質問に役立ちます。 Chrome拡張コンテンツスクリプトカスタムui

33
Xan