Я работаю над проектом, в котором я хочу, чтобы уведомления 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), похоже, игнорируются.