IOS Push Notification отключить/включить на основе ключа

  1. Просто интересно, есть ли способ отключить/включить push-уведомление при его получении.

    Например: - Когда я получаю push-уведомление, я сначала проверяю в своем приложении, включено ли или отключено уведомление в настройках уведомлений.

  2. Также может быть несколько настроек уведомлений, например

    • To disable a friend request notification
    • Чтобы отключить уведомление о сообщении

Итак, при отправке уведомления есть ли какой-либо способ добавить уведомлениеType, например, для запроса на добавление в друзья или обмена сообщениями.

Затем, после проверки типа уведомления и соответствующей настройки в приложении, отображение или удаление уведомления.


person Awesome.Apple    schedule 02.03.2016    source источник
comment
для точки 2 - на вашем сервере вы можете установить флаг, например, какой пользователь включил уведомление для запроса на добавление в друзья, а со стороны сервера вы можете отправлять уведомления только тем пользователям, которым разрешено получать уведомления этого типа.   -  person Divyesh Savaliya    schedule 02.03.2016
comment
И если я хочу отправить уведомление, чтобы сохранить сообщение в кеше приложения. Чтобы мне больше не приходилось получать это сообщение с сервера. В этом случае?   -  person Awesome.Apple    schedule 02.03.2016
comment
Вы можете отправить сообщение с уведомлением в полезной нагрузке уведомления   -  person Divyesh Savaliya    schedule 02.03.2016
comment
И покажет ли это сообщение пользователю? Я имею в виду, что если уведомление отключено, оно не должно показывать пользователю push-уведомление. Он должен просто кэшировать сообщение.   -  person Awesome.Apple    schedule 02.03.2016
comment
Логика отправки уведомлений основана на сервере, оставьте флаг для включения/отключения в зависимости от настроек пользователя в телефоне. По прибытии уведомления делайте все, что хотите, на основе ключей полезной нагрузки. Сохраняйте осмысленный ключ типа уведомления для правильной обработки. Отправьте тихое уведомление с сервера, если вы хотите отправить уведомление без каких-либо предупреждений и т. Д. или сохраняет атрибут для уведомлений, которые должны отображаться как предупреждения или нет   -  person Muhammad Adnan    schedule 02.03.2016
comment
Вы не можете получить токен устройства, если уведомление отключено в настройках   -  person Divyesh Savaliya    schedule 02.03.2016
comment
Меня просто смущает, что по приходу уведомления. Как я могу запретить показ уведомления пользователю?   -  person Awesome.Apple    schedule 02.03.2016
comment
Вы не можете получать уведомления в фоновом режиме, не показывая их пользователю   -  person Divyesh Savaliya    schedule 02.03.2016
comment
Да это я знаю. Я имею в виду, можно ли при получении уведомления решить, показывать уведомление пользователю или нет?   -  person Awesome.Apple    schedule 02.03.2016
comment
Вы можете сделать это, только если приложение находится на переднем плане.   -  person Divyesh Savaliya    schedule 02.03.2016
comment
Я уже справился с этим. Но я спрашиваю в случае, когда приложение не запущено.   -  person Awesome.Apple    schedule 02.03.2016
comment
Вы можете установить эту логику на свой сервер... отправлять уведомления только тем пользователям, которые включены   -  person Divyesh Savaliya    schedule 02.03.2016
comment
вы можете выбрать отображение уведомлений только в том случае, если приложение находится в состоянии forground. в противном случае его поведение по умолчанию будет добавлено как баннер или уведомление о заблокированном экране.   -  person Muhammad Adnan    schedule 02.03.2016
comment
Нет, вы не можете, пока приложение не запущено   -  person Divyesh Savaliya    schedule 02.03.2016
comment
Хорошо, спасибо за разъяснение.   -  person Awesome.Apple    schedule 02.03.2016


Ответы (1)


Вы не можете добиться этого только на стороне клиента. Поскольку после получения уведомления оно обрабатывается iOS и отображается в центре уведомлений (или любого другого типа в соответствии с настройкой пользователя). Приложение не получит информацию об уведомлении, если оно не запущено.

Вы можете установить это в качестве настроек в клиенте и синхронизировать его с сервером, чтобы проверить его перед отправкой уведомлений.

person Dhandapani    schedule 02.03.2016