Как отправить в React Native push-уведомление «Вы не использовали свое приложение» с помощью AWS? - PullRequest
0 голосов
/ 12 сентября 2018

Просто хотел на высоком уровне узнать, как мне этого добиться.

Я думал, что когда пользователь откроет приложение, я буду следить за последним открытым временем в таблице БД Dynamo.

Тогда у меня может быть фоновый работник, постоянно проверяющий и проверяющий, есть ли кто-нибудь.не использовал свое приложение в течение 3 или 4 дней, а затем отправил push-уведомление, т. е. «вы давно не использовали свое приложение, почему бы вам не открыть его и не выполнить XYZ».

1 Ответ

0 голосов
/ 13 сентября 2018

На очень высоком уровне возможны два пути:

1.) Локальные уведомления (для этого вам не нужен AWS): Вы можете запланировать локальное уведомление каждый раз, когда пользователь открывает приложение (или лучше - каждый раз, когда пользователь выводит приложение на передний план). Это работает так: пользователь открывает приложение -> отменить старое запланированное уведомление, если оно существует -> запланировать новое уведомление на «через 3 или 4 дня» -> готово :-) Вы можете использовать что-то вроде этого: https://github.com/zo0r/react-native-push-notification (см. Раздел «Запланированные уведомления»).

2.) Вы можете сделать это с помощью удаленных уведомлений (https://aws.amazon.com/sns/): Вы можете пойти так, как вы предложили. Затем вы должны сохранить запись в вашей базе данных с токеном push-уведомлений устройства и в последний раз, когда приложение было открыто. Затем ваш работник должен проверить и отправить push-сообщение на устройство с помощью службы, такой как SNS.

Я бы порекомендовал 1.) более 2.), потому что вы независимы от интернет-соединения пользователей при получении информации об открытии приложения. В 2.) вы можете пропустить информацию об открытии, когда пользователь открывает приложение без подключения к интернету. Также 2.) дороже, чем 1.), когда вы масштабируете свое приложение.

Преимущество 2.) состоит в том, что вы более гибки, когда и что отправляете в своем уведомлении, поскольку вы можете редактировать его на стороне сервера. 1.) будет означать, что он закодирован в вашем приложении (по крайней мере, пока вы не создадите механизм синхронизации для переменных): -)

...