2014-01-31 2 views
0

В настоящее время мы с моей командой разрабатываем приложение iOS с push-уведомлениями.В приложении mute для Apple-Push-Notifications

У нас есть бэкэнд Rails, который отправляет push-уведомления в приложение iOS. Все работает так, как ожидалось.

У нас есть различные типы уведомлений (продвижение по службе, general_info, новости) мы посылаем в нашем Notification полезную нагрузку следующим образом:

aps: { 
    alert: body, 
    badge: 1, 
    sound: 'bingbong.aiff' 
}, 
type: type 

Однако, мы хотим, чтобы пользователю указать, какие типы уведомлений он хочет получить и который не имеет (с настройками в приложении-Меню).

E.g. если пользователь отменил выбор типа «продвижение», уведомления, которые включают в себя тип «продвижение», будут отфильтрованы, чтобы пользователь не получал уведомления о продвижении по службе.

Такое поведение похоже на то, что Whatsapp! -App использует для отключения групп.

мы нашли другое решение для этого:

Can you mute incoming Push Notifications from the App side [iOS]

Но это работает только если пользователь находится в приложении.

Можно ли даже проверить полезную нагрузку, а затем решить, будет ли отображаться push-уведомление пользователю, когда приложение находится в фоновом режиме/закрыто?

Заранее благодарен!

ответ

2

Ваше приложение не имеет возможности видеть полезную нагрузку push, когда она находится в фоновом режиме, она принимает эти данные только на переднем плане.

Чтобы сделать такую ​​фильтрацию, которую вы хотите, вам в значительной степени необходимо ограничить на стороне сервера то, что отправляется. Если вы используете push-провайдер, вы обычно можете просто отказаться от подписки на одну из ваших категорий, и нажатие этой категории не будет отправлено этому пользователю.

0

Вы не можете прочитать полезную нагрузку, когда уведомление придет, вы можете прочитать его в didRecieve методе

Итак, Для этого создать некоторые WebService, что вызывается, когда пользователь изменит в приложении-настройки меню, основанное на этом магазине в некоторой таблице , поэтому, когда в следующий раз вы отправляете фильтр pushnotification на основе этой таблицы.