我希望你过得愉快。
注意:我正在为应用程序使用Ionic 3。
因此,我对OneSignal的Push Notifications感到困惑,上周我的Push Notifications停止在某些设备上运行(我看不到任何模式,有时在Android,iOS中不起作用)。
这是Ionic中捕获推送通知的代码段:
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发送一个请求(至their REST API)
我发布到OneSignal的REST API的数据是:
{
"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"
}
}
到目前为止,并非所有收件人都收到推送通知(在该特定示例中,我使用的iPad配备iOS 11,iPhone 7和iOS 11,三星Galaxy S7和Android 7以及摩托罗拉G5和Android 7),刚收到其中一台(iPhone 7),但是如果我重复测试,则可以使用Galaxy S7甚至2、3或4台设备获得推送通知。
然后,如果我在OneSignal仪表板中查看“传递状态”,我会看到“推送通知”已正确传递给所有收件人(到目前为止很好),但并非所有人都显示了PN。
注意:我的设备未处于省电模式