Подтвердить что ты не робот

API iOS для управления push-уведомлениями

Это длинный снимок, но есть ли какой-либо публичный (или закрытый) API, который позволяет нам читать существующие push-уведомления на устройстве iOS? Например, может ли приложение, работающее в фоновом режиме, использовать систему каждые X секунд, чтобы определить, получило ли устройство уведомление push из приложения Stack Exchange и получить его содержимое?

Мысль здесь есть некоторые сервисы (такие как Ring Ring Doorbell), которые еще не имеют общедоступных API REST. Но когда на кольцевой камере обнаружено движение, оно отправляет push-уведомление. Подобно популярной услуге IFTTT, это приложение будет служить полюсом для этого уведомления на устройстве, а затем сделать что-то на основе критериев, установленных пользователем.

Я предполагаю, что по крайней мере должен быть частный API, поскольку Apple показывает последние уведомления устройства в Центре уведомлений.

4b9b3361

Ответ 1

Даже если бы можно было использовать неподдерживаемый API, который нарушил безопасность приложения, содержимое push-уведомления зашифровывается, и вы не сможете прочитать содержимое.

Тем не менее, сайт Apple Developer содержит информацию о ретрансляции и взаимодействии с другими уведомлениями о Push Push через Bluetooth для Bluetooth ANCS.

"Цель службы Центра уведомлений Apple (ANCS) - предоставить аксессуары Bluetooth (которые подключаются к устройствам iOS через Bluetooth с низким энергопотреблением) простой и удобный способ доступа ко многим типы уведомлений, которые генерируются на устройствах iOS."

https://developer.apple.com/library/content/documentation/CoreBluetooth/Reference/AppleNotificationCenterServiceSpecification/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013460-CH2-SW1

Это может быть неприменимо к вам, но это одобренный Apple метод взаимодействия и ретрансляции push-уведомлений от других приложений на устройства Bluetooth.

Ответ 2

Нет, это невозможно. Похоже, что это будет проблема конфиденциальности, если другие приложения будут читать другие приложения, размещающие оповещения.

Ответ 3

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

Если вы используете частный API, есть хорошие шансы, что ваше приложение будет отклонено при отправке в хранилище приложений.

некоторые возможные решения для вашего приложения.

1) Посмотрите, каким образом ваше приложение получает это push-уведомление.

2) Или вы должны использовать Inter-App Communication.

Ответ 4

Я интерпретирую этот вопрос, задавая конкретно в объективе устройства IFTTT, которое уже могло читать/записывать данные в "стандартное" приложение IFTTT, и вам интересно, как это делается. Для меня это вопрос, и не спрашивайте о хакерской частной системе push push-уведомлений.

Учитывая это, решение обычно называется HomeKit из того, что я знаю. Это один из Apple "Kits", с общими документами найдено здесь

То, что я думаю, что вы хотите сделать, - это больше похоже на наблюдение за базами данных, где вы, возможно, хотите создать некоторое приложение-агрегатор этого набора данных, хранящегося на устройстве (у Apple есть стандартный метод запроса пользователей для разрешений и полностью разрешено в системе, например, разрешения Camera/Health/Photo и т.д.).

Наблюдение изменений базы данных HomeKit найдено в документе разработчика, связанном с первым, но найденном здесь

Я не использовал это перед собой, но из документов я вижу, что существуют методы наблюдения с использованием обычного старого iOS KVO:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateHomes:) name:@"UpdateHomesNotification" object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updatePrimaryHome:) name:@"UpdatePrimaryHomeNotification" object:nil];

Там гораздо больше информации, и я уверен, что сам StackOverflow (и старые видео WWDC) имеет много информации о HomeKit. Надеюсь, это была предполагаемая интерпретация, которую задал вопрос. Точно так же каждый из поддерживаемых каналов для событий (HealthKit, MapKit и т.д.) Может отправлять вам обновления типа "push-уведомления" о том, что ваш пользователь делает со встроенными API-интерфейсами.

Если вы пытаетесь просто читать из другой полезной нагрузки push-приложения, то другие ответы правильны, и это невозможно в чистой конфиденциальности, что Apple изолирует ваше приложение: Ссылка на документы Apple Sandbox