Я пытался внедрить 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)
}
Любые идеи будутбыть очень полезным.