Push API получает конечную точку от пользователя

Я использую веб-уведомления для информирования моих пользователей об изменениях на моем веб-сайте. Они работают до тех пор, пока сайт загружен, поэтому теперь я хочу сделать следующий шаг и использовать push API для отображения уведомлений, даже если мой сайт не загружен. Там нет приложения, только веб-сайт, было бы достаточно, если бы он работал только в Chrome, и сообщения не должны быть сохранены, если браузер пользователя в настоящее время закрыт.

Я следую за этим ответом. Как веб-приложение может отправлять push-уведомления на устройства iOS? но я застрял на шаге 2 "вы можете прочитать токен устройства (конечную точку), который должен быть отправлен на сервер и сохранен".

Мое понимание конечной точки заключается в следующем:

  1. пользователь и его производитель браузера генерируют токен и URL.
  2. Почему-то я получаю этот URL и сохраняю его на своем сервере.
  3. Любой, кто знает этот URL-адрес, может отправлять на него push-события, поэтому соединение между пользователем и моим веб-сайтом должно быть зашифровано, чтобы никто не смог его перехватить.
  4. Когда я хочу отправить уведомление пользователю, я отправляю запрос на его соответствующий URL-адрес, производитель браузера пересылает его пользователю, и пользователь выполняет код javascript от работника службы.

Я старался

navigator.serviceWorker.ready.then(function(reg) {
  reg.pushManager.subscribe({userVisibleOnly: true}).then(function(subscription) {
    console.log(subscription.endpoint);
  })
})

но получаю сообщение об ошибке "Uncaught (в обещании) DOMException: Регистрация не удалась - отсутствует applicationServerKey, и манифест пуст или отсутствует", что понятно, поскольку нет файла manifest.json. Однако я не вижу, как я участвую в процессе создания токена, кроме включения SSL, чтобы пользователь мог безопасно отправить мне конечную точку.

Я также взглянул на https://serviceworke.rs/push-subscription-management_index_doc.html но я не совсем уверен, что это то, что мне нужно.

0 ответов

Другие вопросы по тегам