«Не удалось зарегистрировать пользователя для идентификатора веб-сайта web.com.WEBSITE, получен ответ 404» ошибка для push-уведомления safari - PullRequest
1 голос
/ 30 апреля 2019

Я пытался внедрить push-уведомление Safari на мой сайт, и оно вроде работает.Я тестировал следующие версии:

  • 9 & 10, который идет к конечной точке pushPackage V1 (работает)
  • 11 & 12, который идет к конечной точке pushPackage V2 (работает)
  • 12.1, который должен перейти к конечной точке V2 (не работает)

Всплывающее окно показывает для каждого из них (кроме 12.1), иЯ могу нажать кнопку разрешения ( проверено вручную в настройках Safari, оно меняется на предоставленное ).Но после этого функция обратного вызова не запускается (исходя из моего кода ниже, она должна регистрировать ASKED, а после нажатия кнопки разрешить GRANTED), она регистрирует только ASKED, а после обновления страницы GRANTED.( Я могу напечатать токен устройства )

Что интересно, перед обновлением он отправляет журнал ошибок в

https://YOUR_API/v1/logs endpoint

(да,даже 11 и 12, которые используют push-пакет V2, заканчивают регистрацией к конечной точке ошибки V1)

Журнал ошибок говорит

Не удалось зарегистрировать пользователя для идентификатора веб-сайта web.com.MYSITE, полученный ответ 404

Понятия не имею, что это значит, это не в документации Apple.

Для справки, вот мой код:

const checkRemotePermission = (permissionData) => {
   if (permissionData.permission === 'default') {
      console.log('ASKED')
         window.safari.pushNotification.requestPermission(
            'https://MYENDPOINT',
            'web.com.MYSITE',
            {},
            checkRemotePermission
         )
      } else if (permissionData.permission === 'denied') {
           console.log('DENIED')
      } else if (permissionData.permission === 'granted') {
           console.log('GRANTED')
      }
   }
   if ('safari' in window && 'pushNotification' in window.safari) {
      var permissionData = window.safari.pushNotification.permission('web.com.MYSITE')
      checkRemotePermission(permissionData)
   }

Любые идеи будутбыть очень полезным.

1 Ответ

0 голосов
/ 26 июня 2019

Когда пользователь регистрирует, обновляет или забывает политику разрешений устройства, запрос POST или DELETE отправляется на следующий URL webServiceURL / версия / устройства / deviceToken / регистрация / websitePushID

Таким образом, этот URL должен существовать, чтобы избежать такой ошибки

Пример URL будет выглядеть https://yoursite.com/v1|v2/devices/75DA1C150840DAB9P7130022F4BF0F0638005B152C2D26B4B65FDAF5F7FDA19D/registrations/web.com.yoursite

...