Как вызвать pushnotification, когда сервер хочет обновить пароль
У меня есть интерфейс для обновления пропуска. Когда я нажимаю "обновить проход", я хочу вызвать pushnotification для устройства передачи. Я не знаю, как это сделать. Как это сделать?
1 ответ
Решение
Для Passbook нужно сделать несколько вещей, чтобы толчок вызвал уведомление на устройстве. Из вашей формы вам нужно будет реализовать все, чтобы следовать этому потоку:
- опубликовать данные из вашей формы на вашем сервере и обновить записи проходов в вашей базе данных
- получить pushToken(s) устройства для устройства (ей), для которого требуется обновленный проход, из таблицы устройств (они должны быть связаны с таблицей проходов с помощью общего ключа)
- подключиться к производственным APNS, используя сертификат PassID, соответствующий
passTypeIdentifier
измененного пропуска - отправить сообщение APNS, содержащее пустую полезную нагрузку для каждого устройства
- подожди несколько секунд......
- после получения push-уведомления каждое устройство свяжется с вашим веб-сервисом с помощью метода " Получение серийных номеров для пропусков, связанных с устройством".
- Ваш веб-сервис должен ответить словарем json, содержащим серию (и) обновленного прохода (обратите внимание, что отправляйте только сериалы, относящиеся к устройству; если вы отправляете сериал, который не установлен, вы будете получать сообщения журнала ошибок)
- когда устройство получит ваш ответ, оно снова вызовет вашу службу с " Получением последней версии пропуска" для отправленного вами сериала.
- динамически создавать новый пакет.pkpass и отправлять в ответе правильный тип MIME и заголовок "Last-Modified"
- при условии, что значение поля изменилось, а словарь полей содержит ключ changeMessage, уведомление будет отображаться на устройстве. Если ничего не изменилось или если не установлено changeMessage, все равно произойдет указанное выше, проход обновится, но вы не увидите уведомление.