Надеюсь, у вас замечательный день.
Примечание: я использую Ionic 3 для своего приложения.
Так что я застрял с Push-уведомлениями OneSignal, на прошлой неделе мой PushУведомления перестали работать на некоторых устройствах (я не вижу шаблон, иногда он не работает в Android, иногда в iOS).
Это фрагмент кода в Ionic, где я ловлю Push-уведомления:
this.oneSignal.startInit(AppConstants.ApplicationId, AppConstants.GoogleProjectId);
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);
this.oneSignal.handleNotificationOpened().subscribe(data => {
const type = data.notification.payload.additionalData.type.toUpperCase();
switch (type) {
case 'TYPE_1':
// Do something
break;
case 'TYPE_2':
// Do something else
break;
case 'TYPE_3':
// Do something else
break;
default:
console.log('Notification type not registered');
break;
}
});
this.oneSignal.endInit();
Я вызываю этот код при запуске приложения.
Каждый раз, когда мои пользователи отправляют сообщение (это функция в приложении), я отправляю запрос в службу REST, и он отправляетзапрос к OneSignal (к их REST API )
Данные, которые я отправляю в REST API OneSignal:
{
"app_id": "MY_PRIVATE_APP_ID",
"ios_badgeType": "Increase",
"ios_badgeCount": 1,
"include_player_ids": [
"141b5113-b8a4-4290-b1f7-cca75d3e9760",
"141b6222-b844-3142-b463-ca1359914ff9",
"24349992-c934-2941-c249-ffa514925284",
"43242432-3234-2342-c534-aacb25492590",
],
"priority": 10,
"android_channel_id": "26ca5296-f10f-4294-a3c6-942b1b88141b",
"headings": {
"en": "You have a message",
"es": "Tienes un mensaje"
},
"contents": {
"en": "Rick Sanchez sent you a message",
"es": "Rick Sanches te envió un mensaje"
},
"data": {
"type": "TYPE_1"
}
}
Пока не все получатели получили PushУведомление (В этом конкретном примере я использую iPad с iOS 11, iPhone 7 с iOS 11, Samsung Galaxy S7 с Android 7 и Motorola G5 с Android 7), я только что получил в одном из них (iPhone 7),но если я повторю тест, то я могу получить гнойh Уведомление с помощью Galaxy S7, или даже 2, 3 или 4 устройств.
Затем, если я проверяю состояние доставки на панели инструментов OneSignal, я вижу, что Push-уведомление было правильно доставлено всем получателям (пока чтохорошо), но не все показали PN.
Примечание: мои устройства не находятся в режиме экономии заряда батареи