1

У меня есть мобильное приложение, которое использует бэкэнд-услуги для регистрации на уведомление Azure push. Все работало нормально до 4 дней назад, когда большинство уведомлений не было доставлено в приложение.Azure Push Notification Works Randomliy

Я использую Service Bus Queue и WebJob для отправки уведомления, и я могу видеть, что все выполнено успешно для Android, но уведомления в большинстве случаев не доставляются в приложение, а состояние уведомления равно Enquued and Success равно 0 и Failure равен 0

Я обновил Microsoft.ServiceBus до последней версии, но это не решило проблему.

Последняя вещь, уведомления Apple, используется, чтобы успешно работать, но теперь они бросают исключение «Удаленный сервер возвратил ошибку: (400) Bad Request Прилагаемый полезной нагрузки уведомление является недействительным

Кто-нибудь сталкиваются с подобными вопросы?

ответ

0

У меня возникла такая же проблема при нажатии уведомлений на устройства iOS через концентраторы уведомлений Azure. Я получил такое же сообщение об ошибке при вызове метода «SendAppleNativeNotificationAsync» на концентраторе.

Я убедился, что в моем сообщении не было никаких незаконных символов, заменив «\» и «». После прочтения нескольких сообщений о проблемах с максимальным ограничением уведомлений мы решили ограничить размер нашего сообщения до 150 символов (магическое число, мы не проводили никаких исследований, чтобы узнать, насколько допустимо большое сообщение с уведомлением о толчке) ,

Я также изменил способ создания полезной нагрузки JSON, и теперь я использую Newtonsoft.Json.Linq для создания объекта JSON с моей полезной нагрузкой. Ранее я создал простую строку JSON для полезной нагрузки, что-то вроде этого:

var apnsMessage = "{\"aps\":{\"alert\":"+message+", \"sound\" : \"default\", \"badge\" : 1}}"; 

Теперь, мой объект JSON создается, как так:

var jsonPayload = JObject.FromObject(new 
      { 
       aps = new { alert = message.Replace("\"", "").Replace("'", "") }, 
       sound = "default", 
       badge = 1 
      }); 

и я отправить уведомление, как это:

await Hub.SendAppleNativeNotificationAsync(jsonPayload.ToString()); 

Надеется, что это поможет вам (или кому-либо еще с той же проблемой) :)

EDIT: Вот простой помощник для обрезки/усечение строк :)

private static string GetTrimmedAndTruncatedString(string source, int length) 
{ 
    return source.Length > length ? source.Substring(0, length) + "..." : source; 
} 

/Isa