Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

uberchel/webpush-front

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

Web Push Notifications Library

Простой пример библиотеки для работы с webpush уведомлениями, поддерживающая современные браузеры и различные способы инициализации подписки.

Описание

Эта библиотека предоставляет простой и удобный способ интеграции веб-пуш-уведомлений в веб-приложения. Она автоматически обрабатывает подписку пользователей, управляет разрешениями и отправляет уведомления через Service Worker.

Установка

  1. Скопируйте файл notify.js в корень вашего проекта
  2. Создайте файл sw.js (Service Worker) в корне проекта
  3. Подключите библиотеку в HTML:
<script src="notify.js"></script>

Конфигурация

В конце файла notify.js настройте параметры:

}.call(window, {
 userId: 'user-id', // ID пользователя
 publicKey: 'you-key', // Публичный ключ для подписки
 apiURL: 'https://you-api.com', // URL вашего API
 type: {name: 'click', delay: 3} // Тип инициализации
}));

Параметры конфигурации

Параметр Тип Описание Обязательный
userId string Уникальный идентификатор пользователя Да
publicKey string Публичный ключ для подписки Да
apiURL string URL вашего API для обработки подписок Да
type object Настройки инициализации подписки Нет

Типы инициализации

// По клику пользователя
type: {name: 'click'}
// С задержкой (в секундах)
type: {name: 'delay', delay: 3}

API

Основные методы

Notification(title, options)

Создает и показывает уведомление.

Notification('Заголовок', {
 body: 'Текст уведомления',
 icon: 'path/to/icon.png',
 data: {url: 'https://example.com'},
 tag: 'unique-tag'
});

Notification.requestPermission(callback)

Запрашивает разрешение на показ уведомлений.

Notification.requestPermission(function(permission) {
 console.log('Разрешение:', permission);
});

Notification.permission

Возвращает текущий статус разрешений.

Свойства уведомлений

Свойство Тип По умолчанию Описание
tag string '' Уникальный тег уведомления
dir string 'ltr' Направление текста
image string '' URL изображения
delay number 0.2 Задержка показа (секунды)
body string 'your body text' Текст уведомления
data object {} Дополнительные данные
icon string base64 Иконка уведомления

Пример использования

<!DOCTYPE html>
<html>
<head>
 <title>Web Push Notifications</title>
</head>
<body>
 <h1>Тест уведомлений</h1>
 <button onclick="showNotification()">Показать уведомление</button>
 
 <script src="notify.js"></script>
 <script>
 function showNotification() {
 Notification('Привет!', {
 body: 'Это тестовое уведомление',
 icon: '/icon.png',
 data: {url: 'https://example.com'}
 });
 }
 </script>
</body>
</html>

Структура API запросов

Библиотека отправляет POST запросы на ваш API:

Подписка

POST {apiURL}/{userId}/{auth}/subscribe

Обновление

POST {apiURL}/{userId}/{auth}/update

Отписка

POST {apiURL}/{userId}/{auth}/remove

Данные запроса

{
 "endpoint": "https://fcm.googleapis.com/fcm/send/...",
 "key": "base64-encoded-p256dh-key",
 "auth": "base64-encoded-auth-secret",
 "oldAuth": "previous-auth-secret",
 "publicKey": "your-public-key",
 "contentEncoding": "aesgcm",
 "userinfo": {
 "name": "Chrome",
 "device": "windows",
 "mobile": false,
 "platform": "Win32"
 }
}

Лицензия

Этот код предоставляется "как есть" без каких-либо гарантий.

LICENSE

The MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /