Почему Chrome PushManager возвращает устаревший API? - PullRequest
0 голосов
/ 29 января 2020

Я вызываю эту pushManager.subscribe функцию следующим образом:

return navigator.serviceWorker.register(process.env.PUBLIC_URL + '/sw-notifications.js').then(function(registration) {
  let subscribeOptions = {
    userVisibleOnly: true,
    applicationServerKey: urlBase64ToUint8Array(publicKey)
  };

  return registration.pushManager.subscribe(subscribeOptions);
})
.then(function(pushSubscription) {
  return pushSubscription;
});

Это отлично работает, и возвращает объект, который выглядит следующим образом:

{"endpoint":"https://fcm.googleapis.com/fcm/send/foo:bar","expirationTime":null,"keys":{"p256dh":"key","auth":"key"}}

В документации сказано для отправки запроса POST на URL-адрес endpoint для отправки пользователю уведомления pu sh.

К сожалению, не указывает , какой тип тела использовать для этого запроса.

Я попытался поискать в Интернете и нашел эту страницу , в которой говорится, что это устаревший API.

Теперь я запутался. Почему PushManager на последнем Chrome возвращает устаревший API? Должен ли я использовать что-то еще? Или это все еще хорошо для использования?

Я пытаюсь включить уведомления pu sh для моего сайта и не могу точно определить, как все эти кусочки головоломки совмещаются.

1 Ответ

1 голос
/ 29 января 2020

firebaser here

Устаревший API FCM никоим образом не устарел и может использоваться без проблем.

Если вы начинаете с новой Проект, мы рекомендуем вам проверить новый (версионный) API, потому что он предлагает более прямую совместимость. Но все еще вполне нормально (а в некоторых случаях даже необходимо) использовать устаревший API.


Обновление : я немного расспросил и получил эту разработку от одной из команды участники:

Существует два способа использования веб-уведомлений pu sh.

  1. Используйте методы работы веб-стандартов там, где браузер дает вам конечную точку - что, похоже, и используется.

  2. Использование Web SDK FCM, построенный на основе стандартного протокола web pu sh. FCM Web SDK упрощает отправку сообщений через Интернет и мобильные приложения (iOS / Android). См. Документацию по по настройке JavaScript клиентского приложения Firebase Cloud Messaging . А если вы используете FCM Web SDK, мы рекомендуем использовать новый (версионный) API, поскольку он обеспечивает более прямую совместимость. Но вполне уместно использовать устаревший API (который никоим образом не устарел).

А если вы используете стандартный протокол web pu sh, то вы вполне можете использовать конечная точка возвращается вам браузером. Эта конечная точка различна для разных браузеров (Firefox и Edge возвращает разные конечные точки). Поставщик Chrome pu sh является FCM, и в этом случае вам не нужно беспокоиться о том, какая конечная точка возвращается (FCM будет правильно обрабатывать ее и обрабатывать ваш запрос).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...