iOS: Можно ли отправить pu sh в Центр уведомлений без звука? - PullRequest
1 голос
/ 03 марта 2020

На Android я могу отправить тихий пу sh, который доставляется в системный трей. На iOS я не уверен, возможно ли это. Я удалил свойство alert из aps и отправляю пустую строку для sound. Я вижу, что счетчик обновлений молча (что хорошо), но в Центре уведомлений ничего нет. Так есть ли способ отправить пу sh на N C без звука?

Обратите внимание, что я не хочу, чтобы pu sh всплывал на экране (то есть пользователь не должен видеть его, пока не проведет пальцем по экрану, чтобы показать, что было доставлено. Другими словами, я ' m пытается сопоставить поведение на Android).

Ответы [ 4 ]

0 голосов
/ 05 марта 2020

Я не уверен, правильно ли я понял ваш вопрос. Но если вы просто хотите отправить тихое уведомление на iOS, запустить приложение в фоновом режиме и позволить ему обработать уведомление, это можно сделать, см. документы .
По сути, у вас есть

  • для включения фонового режима удаленных уведомлений на вкладке «Подпись и возможности» вашей цели и
  • для создания удаленного уведомления со словарем aps, включающим только * Клавиша 1010 *:

    { "aps" : { "content-available" : 1 }, "key1" : "xxx", "key2" : 123 }

Чтобы получать уведомления в режиме без вывода сообщений, система затем разбудит ваше приложение в фоновом режиме. Затем он вызывает делегата вашего приложения application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

0 голосов
/ 03 марта 2020

Если вам не нужен звук, не отправляйте sound параметр в полезной нагрузке.

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 1
    },
    "acme1" : "test"
}

, также вы можете удалить .alert и .sound из willPresent.. метода pu sh в appdelegate.swift файле

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
{
    completionHandler([.badge]) //remove .sound, .alert
}
0 голосов
/ 05 марта 2020

Единственный способ добиться того, что вы хотите сделать, - это указать «предварительный» при запросе разрешения уведомления на устройстве, которое поддерживается на iOS> = 12. Это делает полученные уведомления полностью бесшумными и отображаются только в центре уведомлений без прерывания работы пользователя. Тем не менее, пользователь может настроить это и выбрать «прерывание» уведомлений, и это разрешение также не позволит всем другим уведомлениям «прерывать» пользователя.

Если вы хотите выборочно указать некоторые уведомления только для go в Центр уведомлений, в то время как другие издают звуки и показывают в качестве уведомлений пользователю уведомления, тогда ответ на ваш вопрос нет, это невозможно.

0 голосов
/ 03 марта 2020

да, Apple поддерживает его, формат данных pu sh:

{
    "aps":{
        "aa":"123",
        "content-available":1
    }
}

. Важный ключ - это
"доступно-доступно": 1

...