aboutsummaryrefslogtreecommitdiff
path: root/files/ru/mozilla/add-ons/webextensions/user_interface/notifications/index.html
blob: 4bb1099110efbb6a5c9029eb0d80530034076ef8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
---
title: Уведомления
slug: Mozilla/Add-ons/WebExtensions/user_interface/Notifications
tags:
  - Web-расширение
  - Расширение
translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Notifications
---
<div>{{AddonSidebar}}</div>

<div>
<p><span class="seoSummary">Уведомления позволяют вам передавать информацию пользователям вашего расширения через службу уведомлений в операционной системе.</span></p>

<p><img alt="" src="https://mdn.mozillademos.org/files/15754/notify-shadowed.png" style="display: block; height: 147px; margin-left: auto; margin-right: auto; width: 390px;"></p>

<p>Уведомления могут включать в себя призывы к выполнению каких-либо действий, а ваше расширение может обрабатывать события закрытия или нажатия на уведомления.</p>

<h2 id="Управление_уведомлениями">Управление уведомлениями</h2>

<p>Управление уведомлениями происходит программным путём с помощью  {{WebExtAPIRef("notifications")}} API. Для использования этого API вы должны иметь <code>notifications</code> полномочия в manifest.json:</p>

<pre class="brush: json"><span class="pl-s"><span class="pl-pds">"</span>permissions<span class="pl-pds">"</span></span>: [<span class="pl-s"><span class="pl-pds">"</span>notifications<span class="pl-pds">"</span></span>]</pre>

<p>После этого вы можете использовать {{WebExtAPIRef("notifications.create")}} для создания ваших уведомлений, как, например, в нижеприведённом коде, взятом из  <a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">notify-link-clicks-i18n:</a></p>

<pre class="brush: js">var title = browser.i18n.getMessage("notificationTitle");
var content = browser.i18n.getMessage("notificationContent", message.url);
browser.notifications.create({
  "type": "basic",
  "iconUrl": browser.extension.getURL("icons/link-48.png"),
  "title": title,
  "message": content
});</pre>

<p>Этот код создаёт уведомление с иконкой, заголовком и сообщением.</p>

<p>Если уведомление имеет цель призвать пользователя к какому-либо действию, вы можете установить обработчик события на нажатия на уведомления:</p>

<pre class="brush: js line-numbers  language-js"><code class="language-js">browser<span class="punctuation token">.</span>notifications<span class="punctuation token">.</span>onClicked<span class="punctuation token">.</span><span class="function token">addListener</span><span class="punctuation token">(</span>handleClick<span class="punctuation token">)</span><span class="punctuation token">;</span>
</code></pre>

<p>Если вы собираетесь призывать пользователей к действиям с помощью уведомлений, вам так же будет полезно определять <code>id</code> этих уведомлений, для того чтобы вы в дальнейшем имели возможность различать на какое конкретно уведомление было произведено нажатие.</p>

<h2 id="Иконки">Иконки</h2>

<p>Смотрите статью <a href="https://design.firefox.com/photon/visuals/iconography.html">Iconography</a> в документации <a class="grey-90 no-underline hover-no-underline" href="https://design.firefox.com/photon/index.html">Photon Design System</a> для получения информации по созданию иконок для уведомлений.</p>

<h2 id="Примеры">Примеры</h2>

<p>Репозиторий образцов расширений <a href="https://github.com/mdn/webextensions-examples">webextensions-examples </a>на GitHub включает в себя расширение <a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">notify-link-clicks-i18n</a>, которое реализует систему уведомлений.</p>
</div>