Как я могу настроить уведомление Pu sh? - PullRequest
0 голосов
/ 02 марта 2020

Я работаю над проектом, в котором я хочу, чтобы уведомления Pu sh работали, на Parse-Server (Heroku), с приложением iOS.

Это код, который я использую на на стороне сервера для генерации PU SH:

const pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo('deviceType', 'ios');
    Parse.Push.send({
                        where: pushQuery, // Set our Installation query
                        data: {alert: "ABCXYZ"}
                    }, {
                        useMasterKey: true,
                        success: function() {},
                        error: function(error) {
                            throw "Got an error " + error.code + " : " + error.message;
                        }
                    });

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

Вот соответствующий код swift, где я могу видеть приходящее уведомление:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            willPresent notification: UNNotification,
                            withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    print(#function)
    print("NN = \(notification.description)")
}

И, наконец, это то, что я вижу в консоли отладки Xcode, когда приходит уведомление:

userNotificationCenter(_:willPresent:withCompletionHandler:)
NN = <UNNotification: 0x2....; date: 2020-03-02 06:51:39 +0000,
request: <UNNotificationRequest: 0x28....3e0; identifier: 0C....AF3,
content: <UNNotificationContent: 0x28....6c0; title: (null), subtitle: (null),
body: ABCXYZ, summaryArgument: , summaryArgumentCount: 0, categoryIdentifier: ,
launchImageName: , threadIdentifier: , attachments: (
), badge: (null), sound: (null),, 
trigger: <UNPushNotificationTrigger: 0x28...0; 
contentAvailable: NO, mutableContent: NO>>>

Очевидно, это работает до определенной степени. Но я вижу поля во входящем уведомлении, которые я не контролирую. А именно: title, subtitle, summaryArgument, categoryIdentifier ...... На самом деле только «тело» - это то, что я установил на стороне сервера.

Поэтому мой вопрос: как я могу установить все эти поля как я буду sh.

Я уже пробовал что-то вроде этого:

data: {
  title: "MyOwnTitle",
  alert: "ABCXYZ"
}

Но без успеха.

Кроме того, используя что-то вроде:

data: {
  alert: "ABCXYZ",
  content_available: 1,
  push_type: "background",
  category: "S3x"
}

Я вижу следующее в консоли отладки XCode, когда приходит уведомление:

userNotificationCenter(_:willPresent:withCompletionHandler:)
NN = <UNNotification: 0x28...; date: 2020-03-03 ...,
request: <UNNotificationRequest: 0x2..;
identifier: BF...EE, content: <UNNotificationContent: 0x28..;
title: (null), subtitle: (null), body: ABCXYZ,
summaryArgument: , summaryArgumentCount: 0,
categoryIdentifier: S3x, launchImageName: ,
threadIdentifier: , attachments: (
), badge: (null), sound: (null),, 
trigger: <UNPushNotificationTrigger: 0x28..; 
contentAvailable: NO, mutableContent: NO>>>

, где оказывается, что часть "ABCXYZ" передается так же, как категория (S3x) , но остальные (content_available, push_type), похоже, игнорируются.

1 Ответ

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

В соответствии с уведомлением Parse pu sh docs в полезной нагрузке уведомления pu sh можно отправить следующие параметры:

  • alert: уведомление сообщение.
  • значок: (только iOS) значение, указанное в правом верхнем углу значка приложения. Для этого можно установить значение или Увеличить, чтобы увеличить текущее значение на 1.
  • sound: (только iOS) имя звукового файла в комплекте приложений.
  • content-available: (только iOS) Если вы пишете приложение, использующее фоновый режим удаленного уведомления, представленный в iOS7 (он же «Background Push»), установите это значение равным 1, чтобы запустить фоновую загрузку. Вы также должны установить push_type, начиная с iOS 13 и watchOS 6.
  • push_type: (только iOS) Тип уведомления. Значение является предупреждением или фоном. Укажите предупреждение, когда при доставке вашего уведомления отображается предупреждение, воспроизводится звук или отображается значок вашего приложения. Укажите фон для тихих уведомлений, которые не взаимодействуют с пользователем. По умолчанию оповещение, если значение не установлено. Требуется при доставке уведомлений на устройства под управлением iOS 13 и более поздних версий или watchOS 6 и более поздних версий.
  • priority: (только iOS) Приоритет уведомления. Укажите 10, чтобы отправить уведомление немедленно. Укажите 5, чтобы отправить уведомление, исходя из соображений питания на устройстве пользователя. (Более подробная документация)
  • категория: (только iOS) идентификатор категории UNNotification для этого уведомления pu sh.
  • uri: (только Android) необязательно поле, содержащее URI. При открытии уведомления запускается действие, связанное с открытием URI.
  • title: (только Android) значение, отображаемое в уведомлении Android на панели задач.

Кроме этого, вы также можете написать собственный обработчик уведомлений pu sh в своем приложении iOS, следуя этому руководству: http://docs.parseplatform.org/ios/guide/#responding-to-the-payload

...