Подтверждение доставки APN от Apple [дубликат]

Список имен файлов, содержащих заданный текст

Прежде всего, я считаю, что вы использовали -H вместо -l.

find / -type f -exec grep -l "text-to-find-here" {} \; 

Пример

Предположим, вы ищете файлы, содержащие определенный текст «Apache License» внутри вашего каталога ,

bash-4.1$ find . -type f -exec grep -l "Apache License" {} \; 
./net/java/jvnet-parent/5/jvnet-parent-5.pom
./commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.pom
./io/swagger/swagger-project/1.5.10/swagger-project-1.5.10.pom
./io/netty/netty-transport/4.1.7.Final/netty-transport-4.1.7.Final.pom
./commons-codec/commons-codec/1.9/commons-codec-1.9.pom
./commons-io/commons-io/2.4/commons-io-2.4.pom
bash-4.1$ 

Удалить чувствительность к регистру

Даже если вы не используете случай, подобный тому, который указан ниже (вывод будет отличаться в зависимости от вашего содержимого каталога). «text» vs «TEXT», вы можете использовать переключатель -i, чтобы игнорировать регистр. Подробнее вы можете прочитать здесь .

Надеюсь, это вам поможет.

11
задан Salim 14 September 2014 в 07:13
поделиться

4 ответа

Nopes, push-уведомления - это fire-and-forget.

Apple не сообщит вам следующее:

  1. Не укажет, было ли сообщение отправлено успешно или нет
  2. Не укажет, отказался ли пользователь от Push Notifications
  3. , но все равно ...

Однако

С другой стороны, когда пользователь выбрал Push Notifications, ваше приложение может справиться с этим, но в определенной степени:

В принципе, вы можете добавить логику в -didReceiveRemoteNotification: и -didFinishLaunchingWithOptions:, чтобы связаться с вашим сервером и сообщить серверу, что сообщение получено. Если он не был получен в течение определенного временного интервала, вы можете отправить его повторно.

Но, как вы видите, это может привести к возможному сценарию наводнения невинного пользователя с теми же push-уведомлениями. В некотором смысле, преследуя его, чтобы нажать ваше глупое push-уведомление, которое, в свою очередь, может привести к отключению push-уведомлений для вашего приложения, но в основном ze удалит приложение и, возможно, даже даст ему низкий рейтинг? Скажу вам, правильно.

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

Ваш сервер может проверять почасовую / ежедневную / безоговорочную основу и повторно отправлять определенное сообщение те токены устройства, которые не сообщаются с относительным message identifier.

Опять же, это означает, что ваш сервер, возможно, иногда должен работать OT.


В этом отношении есть другие проблемы:

  1. Пользователь получило push-уведомление, но отклоняет его, а не открывает ваше приложение. Сервер будет считать, что пользователь не увидел push-уведомление и снова отправит это push-уведомление
  2. . Значки устройства Ghost. Пользователь принял push-уведомления сначала, но позже отменил этот privelege. Пользователь удалил приложение. В основном, токены устройства, которые когда-то использовали для получения push-уведомления, но больше не выполняются, скорее всего, из-за вашего сообщения о затоплении репутации
  3. Пользователь получил push-уведомление, но позже его удалит (g0) очень раздражает )
  4. Пользователь получил push-уведомление, но нажимает его, когда нет подключения к Интернету
  5. Пользователь получил push-уведомление, но ваш сервер недоступен, возможно, fried \ m /

Вы можете обойти последние 3 sc enarios, имея еще больше логики в вашем приложении, которая ставит в очередь идентификатор сообщения, который должен быть отправлен на сервер, и удаляет его только тогда, когда сервер отвечает успешно.

Итак, вы видите, слишком много работы, на стороне сервера + клиентская сторона. Кроме того, это огромная деградация производительности на стороне сервера при работе с хорошим объемом пользователей, а также снижение производительности вашего приложения небольшим битом.

19
ответ дан staticVoidMan 22 August 2018 в 23:28
поделиться
[Д2] 1. Если вы спрашиваете об уведомлениях, которые не были доставлены на устройстве, на котором установлено приложение на устройстве, и только из-за того, что срок действия уведомления истекает до его доставки или что-то еще, уведомления не поставляются.

Тогда ответ будет

Нет.

Он не обеспечивает поддержку, где вы можете проверить, не истекает ли Уведомления и не доставлено на действительное устройство:

любой параметр узнать, есть ли приложение apple для push-уведомления?

См. ответ Моше в приведенной выше ссылке. Я включаю его ответ здесь, чтобы он был полезен для всех в будущем, даже если связь становится мертвой.

Короткий ответ, вы не можете, поскольку APNS - это один из способов. Однако, поскольку приложение может выполнить произвольный код после получения уведомления, вы можете использовать это, чтобы сказать, отправить HTTP-запрос на свой собственный сервер при получении уведомления.

2. Если вы спрашиваете уведомления, которые не были доставлены как пользователь, удалили приложение, тогда вы можете обратиться к ответу на меду в этом сообщении.

Надеюсь, это поможет вам и сообщите мне, есть ли у вас какие-либо вопросы относительно моего объяснения.

3
ответ дан Community 22 August 2018 в 23:28
поделиться

Служба обратной связи

Служба уведомлений Apple Push включает службу обратной связи, чтобы предоставить вам информацию о неудачных push-уведомлениях. Когда push-уведомление не может быть доставлено, потому что на устройстве не существует предполагаемого приложения, служба обратной связи добавляет токен этого устройства в свой список. Push-уведомления, которые истекают перед доставкой, не считаются неудачной доставкой и не влияют на службу обратной связи. Используя эту информацию, чтобы прекратить отправку push-уведомлений, которые не будут доставлены, вы уменьшите ненужные накладные расходы и улучшите общую производительность системы.

Ежедневно запрашивайте службу обратной связи, чтобы получить список токенов устройства. Используйте метку времени, чтобы убедиться, что токены устройства не были перерегистрированы с момента создания записи обратной связи. Для каждого устройства, которое не было перерегистрировано, прекратите отправку уведомлений. APNs контролирует поставщиков за их усердие в проверке службы обратной связи и воздерживается от отправки push-уведомлений на несуществующие приложения на устройствах.

2
ответ дан gcamp 22 August 2018 в 23:28
поделиться

Вы можете получить отчет о доставке Push-уведомления, а не с сервера, а из вашего приложения, используя «Service Extension» и немного модифицировать ваш Push json. Оставьте эту ссылку для подробного объяснения.

0
ответ дан Manish Kumar 22 August 2018 в 23:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: