iOS推送通知不会添加到通知中心
问题描述:
我在Xamarin.iOS平台上实现了iOS应用程序的推送通知处理,但是我的问题实际上也适用于iOS本机。
我需要处理推送通知,当我的应用程序处于后台模式出于某种原因,所以我打开背景模式和推送通知在我的项目中使用。此外,我还将内容可用密钥的值为纳入有效负载的aps字典中。我还包括提醒,徽章和声音键,因为我想显示此用户的推送通知并将其添加到通知中心。iOS推送通知不会添加到通知中心
如在背景模式推送通知接收(当应用程序不活动的)后的结果:
1)I处理使用DidReceiveRemoteNotification()方法推送通知接收。
2)用户看到通知从屏幕顶部向下滚动为横幅。
3)我更改应用程序图标徽章计数器。
我的问题是推送通知在所有这些操作后都不会添加到通知中心。
正如我在DidReceiveRemoteNotification处理推送通知后才明白()方法标记的iOS类似该通知处理,不将它们添加到通知中心。作为可能的解决方案,我可以创建本地通知,安排它们,并将其添加到通知中心,但用户将再次从屏幕顶部看到通知滚动为横幅,并且不好(它看起来像用户获得2个通知,但通知中心只显示1个)。
这种行为的实际原因是什么?我该如何解决这个问题?
答
您可以尝试VoIP推送通知服务。
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type
NSDictionary *payloadInfo = payload.dictionaryPayload;
[self showLocalNotificationWithInfo: payloadInfo];
}
- (void) showLocalNotificationWithInfo:(NSDictionary *)infoDict{
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate date];
localNotification.alertBody = @"Your title message";
localNotification.soundName = @"YourSoundFileName.mp3";
localNotification.userInfo = userInfo;
localNotification.fireDate = [NSDate date];
localNotification.timeZone = [NSTimeZone systemTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
答
谢谢你们对你的答案。我发现这种行为的原因 - 问题是徽章键在推送通知正文。此关键字的值为值,这就是为什么iOS标记新通知的原因,他们没有添加到通知中心。