2016-06-16 2 views
1

Я использую библиотеку Pushpad.xyz и получаю уведомления о Chrome. В Firefox я вызываю pushpad («unsupported», callbackFunction), и функция callbackFunction успешно выполняется (другая ошибка, которую я выясняю отдельно, поскольку Firefox должен поддерживаться). Однако я не могу получить уведомления Safari. Я ввел свои сертификаты разработчика Apple в соответствии с запросом в https://pushpad.xyz/docs/pushpad_pro_requirements.Невозможно подписаться на уведомления о Safari Pushpad

pushpad('init', projectID); 
pushpad('uid', signature); 
pushpad('subscribe', function(isSubscribed) { alert(isSubscribed); }); 

pushpad('unsupported', function() { alert('Unsupported browser'); }); 

В Safari я не получаю обратный вызов без поддержки, и документы говорят, что Safari поддерживается. Почему он говорит, что пользователь (я) заблокировал уведомления для этого сайта? Обратный вызов «status» всегда возвращает false. Есть ли способ проверить, правильно ли я настроил свой сертификат Apple? Благодаря!

ответ

0

Проблема с Safari определенно связана с загрузкой пакета push и его подписи.

При запуске pushpad('subscribe') Safari пытается загрузить «push-пакет» с серверов Pushpad и проверяет его целостность и подпись. Если возникает ошибка (например, проверка подписи завершается с ошибкой), пользователю даже не требуются разрешения, а разрешение не равно granted (его значение остается default).

Итак, вы видите странное сообщение, в котором говорится, что пользователь не предоставил разрешения. Фактически в вашем случае это не тот пользователь, который блокирует уведомления: это Safari, который отказывается подписываться на push-уведомления, потому что пакет push недопустим.

Попробуйте создать еще раз, а исправить секретный ключ APNS и сертификат APNS в настройках вашего отправителя на пусковой панели. Это должно решить проблему.

Убедитесь, что точно следуйте шагам, описанным здесь APNS: https://pushpad.xyz/docs/pushpad_pro_requirements

Если вы проверяете свой сайт локально обязательно следуйте инструкциям, как описано в "Working Locally" section: проход

  • hostnameinit
  • убедитесь, что адрес равен http://localhost (если вы используете fo r пример http://127.0.0.1 Safari не будет работать локально)
Смежные вопросы