Ошибка углового 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