Как использовать шаблон push-уведомлений с несколькими пользовательскими свойствами в центре уведомлений Azure?
Мы следуем этому руководству: Практическое руководство. Центры уведомлений Windows Azure (приложения для Android ) для Android.
Все работает нормально при структурировании полезной нагрузки уведомлений, как описано в руководстве. То есть:
{
"data": {
"msg": "$(property1)"
}
}
Однако мы хотели бы расширить шаблон, чтобы использовать более одного пользовательского свойства в полезной нагрузке. Что-то вроде:
{
"data": {
"msg": {
"message": "$(property1)",
"sender": "$(property2)"
}
}
}
где бэкэнд предоставляет значения свойств через:
Dictionary<string, string> templateValues = new Dictionary<string, string>
{
{ "property1", "Hello world" },
{ "property2", "foo" }
};
NotificationOutcome notificationOutcome = await Hub.SendTemplateNotificationAsync(templateValues, "test");
При регистрации шаблона в центре уведомлений из мобильного приложения мы получаем следующую ошибку:
"Поставленная полезная нагрузка уведомления недействительна"
- Можно ли использовать несколько свойств в шаблоне?
- Должны ли мы вместо этого отправлять значение свойства (из серверной части) в виде строки JSON (или другой структуры)? Какой предпочтительный подход? Мы будем использовать шаблон на нескольких платформах (iOS, Android)
заранее спасибо
2 ответа
Полезная нагрузка недопустима, потому что GCM не поддерживает вложенный объект в элементе данных. Вы можете отправить сообщение с двумя свойствами, зарегистрировавшись для следующего шаблона:
{
"data": {
"message": "$(property1)",
"sender": "$(property2)"
}
}
В вашем приемнике Android, вы можете получить вашу собственность с
intent.getStringExtra("property1");
В моих тестах вы можете добавить свои параметры:
Шаблон:
{
"data": {
"message": "$(property1)",
"args": "$(property2)",
"myargs": "$(property3)",
}
}
Данные:
{
"property1":"Jonh",
"property2":"1,1",
"property3":"0",
}
Результаты:
intent.Extras.GetString("message");
intent.Extras.GetString("args");
intent.Extras.GetString("myargs");