Ошибка углового push-уведомления в сервисном работнике, неожиданный токен P в JSON в позиции 0

Я пытаюсь использовать push-уведомление в pwa, но оно не получает уведомление.

На стороне клиента я получаю следующую ошибку

Uncaught SyntaxError: Unexpected token P in JSON at position 0
at Driver.onPush (ngsw-worker.js:1967)
at ngsw-worker.js:1871

Я добавляю изображение, которое включает в себя данные, которые достигают работника службы

Как вы можете видеть на предыдущем изображении, поле данных пустое, однако при отправке я добавляю текст

Для тестирования приложения я выпускаю уведомление со следующим:

https://web-push-codelab.glitch.me/

Я уже ценю любой вклад.

2 ответа

Если ваша полезная нагрузка имеет какой-либо формат json, такой как приведенный выше, ошибка не появляется, но уведомление не отображается на вашем клиенте, и никакое другое сообщение об ошибке не отображается. Вы должны использовать определенный формат JSON. Одна минимальная рабочая нагрузка:

{"уведомление": {"заголовок": "заголовок сообщения", "тело": "тело сообщения"} }

Я не нашел точную и полную спецификацию для этого json, но здесь (поиск "полезная нагрузка") вы найдете более полный пример.

Убедитесь, что вы правильно отправляете полезную нагрузку.

Все нормально кроме ngsw-worker не могу разобрать полезную нагрузку.

Если вы находитесь на Windows, попробуйте это:

--payload="{\"hello\":\"world\"}"

И не это

--payload='{"hello":"world"}'

Пример (используя webpush cli):

web-push send-notification --endpoint="https://fcm.googleapis.com/fcm/send/xxx:xxx" --key="xxxxxxxxxxxxx" --auth="xxxxxxxxxx" --payload="{\"hello\":\"world\"}" --vapid-subject="https://localhost:8000" --vapid-pubkey=xxxxxxxxxx --vapid-pvtkey=xxxxxxxx
Другие вопросы по тегам