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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
|
---
title: Powiadomienie
slug: Web/API/powiadomienie
tags:
- API
- JS Powiadomienia
- Powiadomienia
- Powiadomienie
translation_of: Web/API/Notification
---
<p>{{APIRef("Web Notifications")}}</p>
<p>Interfejs Powiadomień {{domxref('Notifications_API','Notifications API')}} jest używany do konfigurowania i wyświetlania powiadomień komputerowych do użytkownika .</p>
<p>{{AvailableInWorkers}}</p>
<h2 id="Konstruktor">Konstruktor</h2>
<dl>
<dt>{{domxref("Notification.Notification()")}}</dt>
<dd>Tworzy nową instancję obiektu {{domxref('Notification')}} .</dd>
</dl>
<h2 id="Cechy">Cechy</h2>
<h3 id="Statyczne_Cechy">Statyczne Cechy</h3>
<p>Te Cechy są dostępne tylko dla obiektu powiadomienia.</p>
<dl>
<dt>{{domxref("Notification.permission")}} {{readonlyinline}}</dt>
<dd>Linia reprezentująca obecne uprawnienia do wyświetlania powiadomień.Możliwe Wartośći to:denied(Użytkownik odmawia do wyświetlania powiadomień), granted(Użytkownik zaakceptował wyświetlanie powiadomień),albo default(Wybór użytkownika jest nieznany i dlatego przeglądarka zachowuje się jak przy odmowie).</dd>
</dl>
<h3 id="Cechy_Instancji">Cechy Instancji</h3>
<p>Te Cechy są dostępne tylko dla obiektu powiadomień.</p>
<dl>
<dt>{{domxref("Notification.title")}} {{readonlyinline}}</dt>
<dd>Tytuł powiadomienia jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.dir")}} {{readonlyinline}}</dt>
<dd>Kierunek tekstu powiadomienia jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.lang")}} {{readonlyinline}}</dt>
<dd>Język kodu powiadomienia jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.body")}} {{readonlyinline}}</dt>
<dd>Tekst powiadomienia jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.tag")}} {{readonlyinline}}</dt>
<dd>ID powiadomienia (jeżeli jakiekolwiek) jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.icon")}} {{readonlyinline}}</dt>
<dd>Url obrazku użytego w powiadomieniu jak określone w opcjach parametru konstruktora.</dd>
<dt>{{domxref("Notification.data")}} {{readonlyinline}}</dt>
<dd>Zwraca klon struktury daty powiadomienia.</dd>
<dt>{{domxref("Notification.silent")}} {{readonlyinline}}</dt>
<dd>Opisuje czy powiadomienie powinno być ciche,takie jak bez dźwięku czy wbiracji bez względu na ustawienia urządzenia.</dd>
</dl>
<h4 id="Nie_wspierane_cechy">Nie wspierane cechy</h4>
<p>Pokazane Cechy są najbardziej aktualną ze specyfikacją, ale nie są wspierane narazie przez żadną przeglądarkę.Wskazane jest aby sprawdzać regularnie czy status się zaktualizował , i daj nam znać jeżeli znajdziesz nie aktualne informacje.</p>
<dl>
<dt>{{domxref("Notification.noscreen")}} {{readonlyinline}}</dt>
<dd>Określa, czy należy włączyć powiadomienia na ekranie urządzenia, czy też nie.</dd>
<dt>{{domxref("Notification.renotify")}} {{readonlyinline}}</dt>
<dd>Określa, czy użytkownik powinien być powiadamiany po nowym powiadomieniu i zastąpić stare powiadomienie.</dd>
<dt>{{domxref("Notification.sound")}} {{readonlyinline}}</dt>
<dd>Określa dźwięk do odtworzenia wraz z powiadomieniem,za miejscę podstawowego powiadomienia systemowego.</dd>
<dt>{{domxref("Notification.sticky")}} {{readonlyinline}}</dt>
<dd>Określa czy powiadomienie powinno być trudniejsze do usunięcia przez użytkownika, klejące 'sticky'.</dd>
<dt>{{domxref("Notification.vibrate")}} {{readonlyinline}}</dt>
<dd>Określa wibrację urządzenia do emisji przez urządzenie.</dd>
</dl>
<h4 id="Obsługa_zdarzeń">Obsługa zdarzeń</h4>
<dl>
<dt>{{domxref("Notification.onclick")}}</dt>
<dd>Obsługa dla zdarzenia {{event("click")}}.Odpalane przy każdym kliknięciu powiadomienia.</dd>
<dt>{{domxref("Notification.onerror")}}</dt>
<dd>Obsługa dla zdarzenia {{event("error")}}.Odpalane przy każdym razie kiedy powiadomienie będzie napotykało błąd.</dd>
</dl>
<h4 id="Przestarzała_obsługa">Przestarzała obsługa</h4>
<p>Pokazana obsługa zdarzeń jest nadal wspierana w sekcji poniższej {{anch("browser compatibility")}},ale nie pokazane w obecnej specyfikacji. I w związku z tym, aby bezpiecznie założyć, że są przestarzałe mogą przestać działać w przyszłych wersjach przeglądarek.</p>
<dl>
<dt>{{domxref("Notification.onclose")}}</dt>
<dd>Obsługa zdażenia {{event("close")}}. Zamyka powiadomienie.</dd>
<dt>{{domxref("Notification.onshow")}}</dt>
<dd>Obsługa zdażenia {{event("show")}}.Pokazuje gdy powiadomienie jest pokazywane.</dd>
</dl>
<h2 id="Metoda">Metoda</h2>
<h3 id="Statyczna_metoda">Statyczna metoda</h3>
<p>Te metody są dostępne tylko dla obiektu powiadomień.</p>
<dl>
<dt>{{domxref("Notification.requestPermission()")}}</dt>
<dd>Requests permission from the user to display notifications.</dd>
</dl>
<h3 id="Metoda_instacji">Metoda instacji</h3>
<p>Te cechy są dostępne tylko dla obiektu powiadomień albo to <a href="/en-US/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain" name="prototyp"><code>prototype</code></a>. Obiekt powiadomień pobiera to z interfejsu {{domxref("EventTarget")}}.</p>
<dl>
<dt>{{domxref("Notification.close()")}}</dt>
<dd>Programowo zamyka powiadomienie.</dd>
</dl>
<h2 id="Przykład">Przykład</h2>
<p>W podstawowtym HTMLu:</p>
<pre class="brush: html"><button onclick="notifyMe()">Pokaż Powiadomienie!</button></pre>
<p>Jest to możliwe aby wysłać powiadomienie - tutaj pokazujemy jak łatwo i w kompletnym składzie kodu zobaczyć czy powiadomienia są wspierane,potem sprawdzić uprawnienia czy zostały nadane dla obecnego dźwięku powiadomień, potem sprawdź uprawnienia jeżeli potrzebne,przed wysłaniem powiadomienia. </p>
<pre class="brush: js">function notifyMe() {
// Sprawdzamy czy przeglądarka obsługuje powiadomienia.
if (!("Notification" in window)) {
alert("Ta przeglądarka nie obsługuje powiadomień");
}
// Sprawdźmy czy uprawnienia dla powiadomienia zostały nadane
else if (Notification.permission === "granted") {
// jeżeli są tworzymy powiadomienie
var notification = new Notification("Hi there!");
}
// W innym przypadku tworzymy zapytanie o uprawnienia
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
//Jeżeli użytkownik zaakceptuje tworzymy powiadomienie
if (permission === "granted") {
var notification = new Notification("Hi there!");
}
});
}
// Na koniec, jeżeli użytkownik odmówił powiadomień i chcesz szanować go
// nie ma potrzeby dręczyć go zapytaniami
}</pre>
<p>{{EmbedLiveSample('Przyk%C5%82ad', '100%', 30)}}</p>
<p>W wielu przypadkach, nie potrzebujesz tworzyć nowych form. Dla przykładu, w naszym <a href="http://mdn.github.io/emogotchi/">Emogotchi demo</a> (<a href="https://github.com/mdn/emogotchi" name="Zobacz kod źródłowy">see source code</a>), Prosto odpalamy {{domxref("Notification.requestPermission")}} aby sprawdzać czy możemy dostać uprawnienia do wysyłania powiadomień: </p>
<pre class="brush: js">Notification.requestPermission();</pre>
<p>Potem odpalamy funkcje <code>spawnNotification()</code> kiedy chcemy odpalić powiadomienie — to jest przekazywane do argumentu opisanego tekstu,ikony i tytułu który chcemy, potem tworzy konieczne opcje obiektu i odpala powiadomienie używając konstruktora {{domxref("Notification.Notification","Notification()")}}.</p>
<pre class="brush: js">function spawnNotification(theBody,theIcon,theTitle) {
var options = {
body: theBody,
icon: theIcon
}
var n = new Notification(theTitle,options);
}</pre>
<h2 id="Specifikacja">Specifikacja</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Web Notifications')}}</td>
<td>{{Spec2('Web Notifications')}}</td>
<td>Living standard</td>
</tr>
</tbody>
</table>
<h2 id="Kompatybilność_Przeglądarek">Kompatybilność Przeglądarek</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Podstawowa usługa</td>
<td>5{{property_prefix("webkit")}}<sup>[1]</sup><br>
22</td>
<td>4.0 {{property_prefix("moz")}}<sup>[2]</sup><br>
22</td>
<td>{{CompatNo}}</td>
<td>25</td>
<td>6<sup>[3]</sup></td>
</tr>
<tr>
<td><code>ikona</code></td>
<td>5{{property_prefix("webkit")}}<sup>[1]</sup><br>
22</td>
<td>4.0 {{property_prefix("moz")}}<sup>[2]</sup><br>
22</td>
<td>{{CompatNo}}</td>
<td>25</td>
<td>{{CompatNo}}</td>
</tr>
<tr>
<td>Available in workers</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatGeckoDesktop("41.0")}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>silent</code></td>
<td>{{CompatChrome(43.0)}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
<tr>
<td><code>noscreen</code>, <code>renotify</code>, <code>sound</code>, <code>sticky</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Android Webview</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
<th>Chrome for Android</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatUnknown}}</td>
<td>
<p>{{CompatVersionUnknown}}</p>
</td>
<td>4.0{{property_prefix("moz")}}<sup>[2]</sup><br>
22</td>
<td>1.0.1{{property_prefix("moz")}}<sup>[2]</sup><br>
1.2</td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatNo}}</td>
<td>
<p>{{CompatVersionUnknown}}</p>
</td>
</tr>
<tr>
<td><code>icon</code></td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>4.0{{property_prefix("moz")}}<sup>[2]</sup><br>
22</td>
<td>1.0.1{{property_prefix("moz")}}<sup>[2]</sup><br>
1.2</td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
<tr>
<td>Available in workers</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatGeckoMobile("41.0")}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>silent</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatChrome(43.0)}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatChrome(43.0)}}</td>
</tr>
<tr>
<td><code>noscreen</code>, <code>renotify</code>, <code>sound</code>, <code>sticky</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] Before Chrome 22, the support for notification followed an <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">old prefixed version of the specification</a> and used the {{domxref("window.navigator.webkitNotifications","navigator.webkitNotifications")}} object to instantiate a new notification.</p>
<p>Before Chrome 32, {{domxref("Notification.permission")}} was not supported.</p>
<p>Before Chrome 42, service worker additions were not supported.</p>
<p>[2] Prior to Firefox 22 (Firefox OS <1.2), the instantiation of a new notification must be done with the {{domxref("window.navigator.mozNotification", "navigator.mozNotification")}} object through its <code>createNotification</code> method.</p>
<p>Prior to Firefox 22 (Firefox OS <1.2), the Notification was displayed when calling the <code>show</code> method and supported only the <code>click</code> and <code>close</code> events.</p>
<p>Nick Desaulniers wrote a <a href="https://github.com/nickdesaulniers/fxos-irc/blob/master/js/notification.js">Notification shim</a> to cover both newer and older implementations.</p>
<p>One particular Firefox OS issue is that you can <a href="https://github.com/nickdesaulniers/fxos-irc/blob/0160cf6c3a2b5c9fe33822aaf6bcba3b7e846da9/my.js#L171">pass a path to an icon</a> to use in the notification, but if the app is packaged you cannot use a relative path like <code>/my_icon.png</code>. You also can't use <code>window.location.origin + "/my_icon.png"</code> because <code>window.location.origin</code> is null in packaged apps. The <a href="https://developer.mozilla.org/en-US/Apps/Developing/Manifest#origin">manifest origin field</a> fixes this, but it is only available in Firefox OS 1.1+. A potential solution for supporting Firefox OS <1.1 is to <a href="https://github.com/nickdesaulniers/fxos-irc/blob/0160cf6c3a2b5c9fe33822aaf6bcba3b7e846da9/my.js#L168">pass an absolute URL to an externally hosted version of the icon</a>. This is less than ideal as the notification is displayed immediately without the icon, then the icon is fetched, but it works on all versions of Firefox OS.</p>
<p>When using notifications in a Firefox OS app, be sure to add the <code>desktop-notification</code> permission in your manifest file. Notifications can be used at any permission level, hosted or above: <code>"permissions": { "desktop-notification": {} }</code></p>
<p>[3] Safari zaczeło wspierać powiadomienia z wersją Safari 6,ale tylko od Mac OSX 10.8+(Mountain Lion).</p>
<h2 id="Zobacz_Także">Zobacz Także</h2>
<ul>
<li><a href="/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API" lang="PL" name="Używanie API Powiadomień">Using the Notifications API</a></li>
</ul>
|