diff options
author | Сандро <warsan00@mail.ru> | 2021-10-18 13:33:45 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-18 11:33:45 +0300 |
commit | 9f8f535f3ed7bfe9f0bcd494830782fc9ec23c29 (patch) | |
tree | 9b75ced7dc9f794e993268f25464fd410b286043 /files/ru | |
parent | a5244332483ce91b0be09cc7a6ef057a8d37884f (diff) | |
download | translated-content-9f8f535f3ed7bfe9f0bcd494830782fc9ec23c29.tar.gz translated-content-9f8f535f3ed7bfe9f0bcd494830782fc9ec23c29.tar.bz2 translated-content-9f8f535f3ed7bfe9f0bcd494830782fc9ec23c29.zip |
(ru) Fix Push API page translation (#1358)
* Update index.html
* Aligned with the English version
- Move to Markdown
- Fix translation errors
* Update index.md
Co-authored-by: Sasha Sushko <sushko@outlook.com>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
Diffstat (limited to 'files/ru')
-rw-r--r-- | files/ru/web/api/push_api/index.html | 114 | ||||
-rw-r--r-- | files/ru/web/api/push_api/index.md | 84 |
2 files changed, 84 insertions, 114 deletions
diff --git a/files/ru/web/api/push_api/index.html b/files/ru/web/api/push_api/index.html deleted file mode 100644 index ce215777d0..0000000000 --- a/files/ru/web/api/push_api/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Push API -slug: Web/API/Push_API -tags: - - API - - Ссылка - - Уведомления - - Экспериментальная -translation_of: Web/API/Push_API ---- -<p>{{DefaultAPISidebar("Push API")}}{{SeeCompatTable}}</p> - -<p><strong>Push API</strong> даёт веб приложениям возможность получать сообщения отправленные с сервера, независимо от того, запущено ли веб приложение в фоне или даже загружено ли оно вообще пользователем. Это позволяет разработчикам посылать асинхронные сообщения и обновления пользователям которые подписались на них, как результат улучшается информированность пользователей о новом контенте</p> - -<div class="note"> -<p><strong>Примечание</strong>: Эта документация охватывает спецификацию W3C Push API ; если вы ищете документацию по запатентованной технологии Firefox OS , <a href="/en-US/docs/Web/API/Simple_Push_API">смотрите здесь</a>.</p> -</div> - -<h2 id="Общие_сведения_об_использовании_push_уведомлений">Общие сведения об использовании push уведомлений</h2> - -<div class="warning"> -<p><span id="result_box" lang="ru"><span>При внедрении подписки PushManager, жизненно важно защищать запросы от CSRF/XSRF атак в вашем приложении.</span> </span><span lang="ru"><span> </span></span></p> - -<p><span lang="ru"><span>Дополнительную информацию см. В следующих статьях:</span></span></p> - -<ul> - <li><a href="https://habr.com/post/318748/">Методы защиты от CSRF-атаки</a></li> - <li><a href="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet">Site Request Forgery (CSRF) Prevention Cheat Sheet</a></li> - <li><a href="/ru/docs/https://blog.codinghorror.com/preventing-csrf-and-xsrf-attacks/">Preventing CSRF and XSRF Attacks</a></li> -</ul> -</div> - -<p>Для получения push уведомлений приложение должно иметь активный <a href="/en-US/docs/Web/API/ServiceWorker_API">service worker</a>. Когда service worker активен, оно может подписаться на push уведомления используя {{domxref("PushManager.subscribe()")}}.</p> - -<p>Полученный объект {{domxref("PushSubscription")}} включает в себя всю необходимую информацию, которая может потребоваться приложению чтобы отправить push уведомление: адрес и ключ шифрования, необходимые для отправки данных.</p> - -<p>Service worker будет запущен для того чтобы обрабатывать входящие push сообщения, которые будут доставлены в {{domxref("ServiceWorkerGlobalScope.onpush")}} обработчик события. Это позволит приложению реагировать на push сообщения, к примеру показывать нотификации через метод {{domxref("ServiceWorkerRegistration.showNotification()")}}.</p> - -<p>Каждая подписка уникальна по отношению к service worker. Адрес для подписки это уникальный <a href="http://www.w3.org/TR/capability-urls/">capability URL</a>: всё что нужно чтобы отослать сообщение вашему приложению это адрес. Однако это URL необходимо держать в секрете, иначе любое другое приложение сможет слать push уведомление к вашему приложению.</p> - -<p>Использование service worker для получения push уведомлений может привести к повышенному потреблению ресурсов, например это может влиять на расход батареи. Во всех браузерах это работает по разному - нет стандарта на этот счёт. К примеру Firefox позволяет лишь ограниченное число уведомлений которое может быть отправлено приложению, а Chrome не имеет таких ограничений, однако обязывает показывать уведомление пользователю каждый раз, чтобы пользователь мог решить хочет он или нет принимать их дальше.</p> - -<div class="note"> -<p><strong>Примечание: </strong><span id="result_box" lang="ru"><span>Начиная с Gecko 44, разрешённая квота push-</span></span>уведомлений<span lang="ru"><span> для каждого приложения не увеличивается, в случае если новое уведомление срабатывает когда другое все ещё должна отображаться в течение трёх секунд.</span> <span>Это обрабатывает случаи, когда получены несколько Push </span></span>уведомлений подряд<span lang="ru"><span> и не все генерируют видимое уведомление.</span></span></p> -</div> - -<div class="note"> -<p><strong>Примечание</strong>: Так же Chrome обязывает регистрировать проект в <a href="https://developers.google.com/cloud-messaging/">Google Cloud Messaging</a> для отправки push сообщений, а также использовать присвоенный номер проекта и API ключ когда отправляются push уведомления. К тому же требуется наличие манифеста приложения с некоторыми параметрами для использования этого сервиса. Возможно эти ограничения будут убраны в будущем.</p> -</div> - -<h2 id="Интерфейсы">Интерфейсы</h2> - -<dl> - <dt>{{domxref("PushEvent")}}</dt> - <dd>Представляет собой push действие отправленное в <a href="/en-US/docs/Web/API/ServiceWorkerGlobalScope">global scope</a> {{domxref("ServiceWorker")}}-а. Содержит информацию отправленную в {{domxref("PushSubscription")}}.</dd> - <dt>{{domxref("PushManager")}}</dt> - <dd>Предоставляет способ для получения уведомлений из сторонних серверов, а также из URL запросов для push уведомлений. Этот интерфейс заменил устаревшую функциональность интерфейса {{domxref("PushRegistrationManager")}}.</dd> - <dt>{{domxref("PushMessageData")}}</dt> - <dd>Предоставляет доступ к push данным отправленным сервером и включает методы для манипулирования полученными данными.</dd> - <dt>{{domxref("PushSubscription")}}</dt> - <dd>Предоставляет конечную точку URL подписки и позволяет отписаться от push сервиса.</dd> -</dl> - -<h2 id="Служебный_работник_дополнения">Служебный работник дополнения</h2> - -<p>Следующие дополнения к <a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker API</a> описанные в спецификации Push API, представляют собой первостепенные действия для использования Push сообщений, а также для обработки push событий.</p> - -<dl> - <dt>{{domxref("ServiceWorkerRegistration.pushManager")}} {{readonlyinline}}</dt> - <dd>Возвращает ссылку на интерфейс {{domxref("PushManager")}} для манипулирования push подписок включая подписывание, получение активной подписки и доступ к статусу push разрешения. Это входная точка к обмену push сообщениями.</dd> - <dt>{{domxref("ServiceWorkerGlobalScope.onpush")}}</dt> - <dd>Данный обработчик событий вызывается всякий раз когда происходит событие {{Event("push")}}; то есть всегда когда принимается push сообщение сервера.</dd> - <dt>{{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange")}}</dt> - <dd>Данный обработчик событий вызывается всякий раз когда происходит событие {{Event("pushsubscriptionchange")}}; например, когда push подписка стала недействительной или собирается быть недействительной (к примеру, когда push сервис устанавливает время истечения.)</dd> -</dl> - -<h2 id="Спецификации">Спецификации</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Спецификация</th> - <th scope="col">Статус</th> - <th scope="col">Комментарий</th> - </tr> - <tr> - <td>{{SpecName("Push API")}}</td> - <td>{{Spec2("Push API")}}</td> - <td>Initial definition</td> - </tr> - </tbody> -</table> - -<h2 id="Совместимость_браузера">Совместимость браузера</h2> - -<h3 id="PushEvent"><code>PushEvent</code></h3> - -<p>{{Compat("api.PushEvent")}}</p> - -<h3 id="PushMessageData"><code>PushMessageData</code></h3> - -<p>{{Compat("api.PushMessageData")}}</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="/en-US/docs/Web/API/Push_API/Using_the_Push_API">Using the Push API</a></li> - <li><a href="http://updates.html5rocks.com/2015/03/push-notificatons-on-the-open-web">Push Notifications on the Open Web</a>, Matt Gaunt</li> - <li><a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker API</a></li> -</ul> - -<div id="gtx-trans" style="position: absolute; left: 46px; top: 3314.75px;"> -<div class="gtx-trans-icon"></div> -</div> diff --git a/files/ru/web/api/push_api/index.md b/files/ru/web/api/push_api/index.md new file mode 100644 index 0000000000..025bf1a681 --- /dev/null +++ b/files/ru/web/api/push_api/index.md @@ -0,0 +1,84 @@ +--- +title: Push API +slug: Web/API/Push_API +tags: + - API + - Push + - Landing + - Сервис-воркеры + - Экспериментальная технология + - Уведомления + - Определение +--- +{{ApiRef("Push API")}} + +**Push API** предоставляет веб-приложениям возможность принимать сообщения с сервера независимо от того, запущено веб-приложение прямо сейчас или нет. Что в свою очередь позволяет разработчикам оперативно уведомлять пользователей, которые разрешили присылать себе уведомления о новом контенте. + +## Об использовании Push API + +> **Обратите внимание:** При использовании PushManager-подписок жизненно важно защищать запросы от CSRF/XSRF-атак в вашем приложении. Подробнее читайте по ссылкам: +> +> - [Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html) +> - [Preventing CSRF and XSRF Attacks](https://blog.codinghorror.com/preventing-csrf-and-xsrf-attacks/) + +Для получения сообщений от сервера у приложения должен быть активированный [сервис-воркер](/ru/docs/Web/API/Service_Worker_API). После активации у сервис-воркера появится возможность подписаться на канал для получения сообщений, используя {{domxref("PushManager.subscribe()")}}. + +В результате подписки будет получен объект {{domxref("PushSubscription")}} со всей необходимой информацией, которая может потребоваться приложению для обращения за сообщениями на сервер: URL-адрес и ключ шифрования. + +После подписки сервис-воркеру можно добавить обработчик {{domxref("ServiceWorkerGlobalScope.onpush")}} для получения сообщений от сервера. В качестве реакции на сообщение можно, например, обращаться к серверу за данными и показывать пользователю уведомление с помощью метода {{domxref("ServiceWorkerRegistration.showNotification()")}}. + +Для сервис-воркера каждая подписка уникальна, а её URL-адрес — уникальная [специальная ссылка](https://www.w3.org/TR/capability-urls/). Поскольку это всё, что нужно для обращения к серверу, данную ссылку нужно держать в секрете, иначе любое другое приложение сможет воспользоваться вашим сервером. + +Для получения push-сообщений сервис-воркеру требуются ресурсы, что может влиять, например, на расход батареи. Во всех браузерах эти проблемы решаются по-разному, какого-то единого стандарта на этот счёт нет. Например, браузер Firefox ограничивает количество сообщений, которое можно отправить приложению, однако сообщения с показом уведомления в этот лимит не попадают. В Chrome таких ограничений нет. + +## Интерфейсы + +- {{domxref("PushEvent")}} + - : Описывает действие, направленное в [глобальную область видимости](/en-US/docs/Web/API/ServiceWorkerGlobalScope) {{domxref("ServiceWorker", "сервис-воркера")}}. Включает информацию, переданную сервером {{domxref("PushSubscription", "подписчикам")}}. +- {{domxref("PushManager")}} + - : Предоставляет возможность подписаться на сообщения от сторонних серверов и получить URL-адрес для отправки push-уведомлений. +- {{domxref("PushMessageData")}} + - : Содержит данные, отправленные сервером, и методы для управления ими. +- {{domxref("PushSubscription")}} + - : Предоставляет возможность получить URL-адрес подписки, а также содержит метод для отписки. +- {{domxref("PushSubscriptionOptions")}} + - : Описывает параметры конкретной подписки. + +## Методы сервис-воркера для работы c Push API + +Спецификация Push API расширяет [возможности сервис-воркеров](/ru/docs/Web/API/Service_Worker_API) для работы с push-сообщениями: позволяет отслеживать и реагировать на такие сообщения, а также следить за изменениями в подписках. + +- {{domxref("ServiceWorkerRegistration.pushManager")}} {{readonlyinline}} + - : Позволяет обратиться к интерфейсу по управлению подписками {{domxref("PushManager")}}, в том числе для добавления подписки, получения информации о текущей подписке, а также позволяет узнать о возможности отправки сообщений. Работа с push-сообщениями начинается с этого свойства сервис-воркера. +- {{domxref("ServiceWorkerGlobalScope.onpush")}} + - : Обработчик событий, срабатывает всякий раз, когда происходит событие {{Event("push")}}; то есть при получении push-сообщений от сервера. +- {{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange")}} + - : Обработчик событий, срабатывает всякий раз, когда происходит событие {{Event("pushsubscriptionchange")}}; будет полезен в ситуациях, когда подписка была просрочена или вот-вот будет просрочена (при условии, что для подписки был указан срок действия). + +## Примеры + +На [сайте-инструкции по работе с сервис-воркерами](https://serviceworke.rs/) от Mozilla вы найдёте множество примеров использования **Push API**. + +## Спецификации + +| Спецификация | +| ------------------------------------------- | +| [Push API](https://w3c.github.io/push-api/) | + +## Поддержка браузерами + +### `PushEvent` + +{{Compat("api.PushEvent")}} + +### `PushMessageData` + +{{Compat("api.PushMessageData")}} + +## Смотрите также + +- [Sending VAPID identified WebPush Notifications via Mozilla's Push Service](https://blog.mozilla.org/services/2016/08/23/sending-vapid-identified-webpush-notifications-via-mozillas-push-service/) +- [Web Push Notifications: Timely, Relevant, and Precise](https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/), Joseph Medley +- [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) + +{{DefaultAPISidebar("Push API")}} |