it-roy-ru.com

Возможны ли Silent Remote Notifications, если пользователь отключил функцию Push для приложения?

В моей вкладке настроек:

  1. У меня есть особый переключатель, который можно выключить или включить в зависимости от ответа API.
  2. С сайта только администратор имеет право включать/выключать.
  3. Я могу сделать/user API call каждый раз при нажатии настройки, чтобы проверить текущие настройки для пользователя, но есть пара недостатков, например, если пользователь уже настроен, он не будет обновлять пользовательский интерфейс и вызов API каждый раз при настройке касания не звучит идеальное решение.

Я думаю, что лучшим решением является отправка тихого Push-уведомления, которое я могу использовать для вызова API для обновления пользовательского интерфейса настроек при необходимости. 

Но если пользователь отключил Push-уведомление, я все равно получу тихое Push-уведомление? Каков рекомендуемый подход к таким ситуациям?

32
Tariq

Краткий ответ, да

Новая замечательная возможность для разработчиков приложений для iOS 8 заключается в том, что Apple теперь будет выдавать «тихие» нажатия, даже если пользователь отказался от уведомлений. Кроме того, «тихий толчок» больше не только для приложений газетного киоска. Каждое приложение может воспользоваться этой возможностью для обновления содержимого в фоновом режиме, создавая максимально актуальную и отзывчивую работу, возможную в тот момент, когда пользователь открывает приложение.

Хотя...

Пользователи по-прежнему имеют возможность отключить способность вашего приложения обрабатывать «тихий толчок» с помощью элемента «Фоновое обновление приложения». Даже несмотря на то, что служба Apple Push Notification (APN) будет доставлять Push с пометкой «доступный контент» на ваш телефон, ОС не разбудит ваше приложение, чтобы получить его, фактически сбросив его на пол. Однако отказ от «фонового обновления приложения» является менее известной возможностью, не связанной напрямую с уведомлениями. У вас нет доступа к этому параметру в настройках уведомлений - он находится в разделе «Общие»> «Обновление фонового приложения».

Помните об этом при создании приложения.

Источник: https://www.urbanairship.com/blog/watch-list-ios-8-opt-in-changes

51
gmat1014

  Эта матрица может помочь. С левой стороны показано, будет ли вызван метод didReceiveRemoteNotification: или нет. Другие два столбца связаны с настройкой приложения. Настройки -> YourApp. Если ваше приложение поддерживает уведомления и фоновое обновление приложения. Посмотрите в матрицу, чтобы проверить, когда ваше приложение получит тихий Push.

19
GameBegins

Другие ответы хороши. Но они не являются официальными ответами.

Ответ official находится в Что нового в уведомлениях WWDC 2015 видео:

Тихие уведомления включены по умолчанию. Пользователю не нужно утвердить ваш - не дает разрешение вашему приложению использовать их, и Вы можете просто начать использовать их, не спрашивая у пользователя разрешения . Но тихие уведомления - это механизм background background app обновить. В любой момент вы знаете, что пользователь может зайти в настройки и отключить их. Таким образом, вы не можете зависеть от того, чтобы они всегда были доступны. Вы не знаю, если пользователь выключил их, и вы не получаете уведомление больше. Это также означает, что тихие уведомления доставлено с максимальным усилием. Это означает, что при уведомлении приходит на устройство пользователя, система собирается сделать некоторые выбор.

Подробнее см. Это изображение и этот ответ

0
Honey